tee
Команда зчитує дані зі стандартного вводу і копіює будь-яку кількість файлів , плюс стандартного виводу за замовчуванням см man tee
для більш докладної інформації. Це означає, що ви можете попросити трійника створити файл із введення, а потім передати вихід на щось інше.
Додавання додаткової труби теоретично додає трохи неефективності. Щодо значущого чи ні, вам доведеться судити про себе, використовуючи власний метод потокового передачі. Мій сучасний метод не є задовільним при повному дозволі. Зараз це не величезний інтерес, але коли він є, я спробую знайти щось краще (наприклад, нібито gstreamer працює краще, ніж clvc).
Однак варто зазначити, що файл, який зберігається локально на pi одночасно, є ідеальною якістю, тому активність не заважає raspivid. Ось приклад:
raspivid -o - -t 0 | tee test_video.h264 |
cvlc -v stream:///dev/stdin --sout '#standard{access=http,mux=ts,dest=:8080' :demux=h264
Я розбив це на два рядки для читабельності; ви можете натиснути return after |
(pipe) і закінчити команду так само, як ви можете розірвати рядок \
. Ви можете замінити на cvlc
все, що завгодно. Знову, хоча потік був низької якості, test_video.h264
вийшов ідеальним.
Якщо я знижу роздільну здатність до 640x360, це розташування чудово, із затримкою секунди або двох, що я зазвичай отримую. Я не думаю, що tee
або друга труба не має ніякої різниці в якості потоку; вони здатні значно перевищувати пропускну здатність, ніж потрібно тут, і не потребують великих витрат на шляху системних ресурсів.
Центральний процесор працював на рівні 35-45%, що так само, як і в потоковому відео tee
.
raspivid
ви можетеtee
вивести файл і gstreamer або інше (див.man tee
). Поки один потік знаходиться прямо на диску, він не додасть великих накладних витрат, але якщо ви хочете одночасно обробити вхід у два різні формати, я думаю, що для пі-пір це буде занадто багато роботи.