То, к чему нужно прийти:
Реализовать непрерывную потоковую трансляцию ffmpeg, которая будет брать ролики из папки и крутить их по кругу. Важно, чтобы задержка была минимальной, переходы между разными видео в одном потоке были автоматическими.
Какая возникла проблема:
Я могу поймать rtmp поток через VLC, но очень плохо работают переходы, высокая задержка (кадры обрабатываются, но VLC ловит поток только через секунд 10-20, а иногда и вообще зависает). Мягко сказать, трансляция работает криво.
Мои конфиги:
1. Скрипт для запуска ffmpeg + генерация потока в rmtp:
cd /root/cnv_video
while [ true ]; do
for video in $( ls -1 --hide=`ls -d` ); do
while [ `fuser $video` ]; do
sleep 10
done
/usr/bin/ffmpeg -re -i $video -acodec copy -vcodec copy -tune zerolatency -strict experimental -f flv rtmp://x.x.x.x/live/stream
done
done
2. Ветка rtmp в nginx:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
}
}
}
P.S.: Это всё нужно для того, чтобы крутить 24/7 ролики в мед. учреждении на нескольких Raspberry Pi, подключенных к телевизорам.
Буду благодарен, если кто-то укажет на мои ошибки и подскажет, куда мне копать и в чём я ошибся, а, может быть, даже поможет другим конфигом.