У меня есть сценарий Bash, который использует анонимные каналы для достижения:
- захват видео с устройства захвата DV
- запись в файл (используя тройник)
- передача его в ffmpeg2theora (преобразование в видео ogv/theora)
- запись в файл (используя тройник)
- передача его в oggfwd для отправки на потоковый сервер icecast
Как я могу добиться этого, используя именованные каналы (fifos), чтобы у меня были отдельные процессы, которыми я мог бы управлять отдельно?
Я использовал этот скрипт:
#!/bin/bash
while (true);
do
dvgrab --format dv1 - | \
tee /filename_`date +%y%m%d_%H%M%S`.dv | \
ffmpeg2theora.linux -f dv -x 382 -y 288 -v 3 --speedlevel 2 --no-skeleton -o /dev/stdout - | \
tee /filename_`date +%y%m%d_%H%M%S`_stream_382x288.ogv | \
oggfwd icecastserver.com 8000 password /mountpoint.ogv
done
Одна из причин, по которой я спрашиваю это, заключается в том, что мне нужно иметь чистые dv-файлы и ogv-файлы на диске независимо от того, работает ли сеть и доступен ли сервер потоковой передачи icecast.