My BeeCam - это Raspberry Pi3/Raspbian Stretch со свежекомпилированной версией ffmpeg N-89882-g4dbae00bac, работающей в качестве сервиса:
#!/bin/bash
cd /usr/local/bin/
while true
do
./ffmpeg -re -thread_queue_size 512 -rtsp_transport tcp -i \
"rtsp://anonymous:password@192.168.1.11:554" -i WilliamTellOverture.mp3 \
-vcodec copy -acodec copy -t 00:11:51 -f flv \
"rtmp://a.rtmp.youtube.com/live2/my-youtube-streaming-key"
sleep 10s
done
где 192.168.1.11 - мой новый элегантный Reolink RLC-423S, а -t 00:11:51 - длина моего бесплатного MP3. Это обычно работает довольно хорошо:
https://www.youtube.com/user/IAmTheWaterbug/live
и это постоянно. Поток YT будет глючить при перезапуске, но поток возобновляется только с потерей примерно 15 секунд видео. Он работал непрерывно в течение ночи, по крайней мере, 8 часов (например, много петель), прежде чем я начал возиться с ним.
Я изменил сон на 5 секунд, и это, кажется, не беспокоит.
Но иногда я делал остановку sudo systemctl StreamToYouTube с последующим запуском sudo systemctl запуска StreamToYouTube, в течение 1-2 секунд (например, так быстро, как я могу набрать Up Up Up и Enter), и иногда, когда я делаю это, поток завершается неудачно, и ffmpeg начинает сбрасывать:
[rtsp @ 0x302c2f0] RTP: PT=60: bad cseq e680 expected=0b49
[rtsp @ 0x302c2f0] RTP: PT=60: bad cseq 93ab expected=0b49
[rtsp @ 0x302c2f0] RTP: PT=60: bad cseq 93ac expected=0b49
[rtsp @ 0x302c2f0] RTP: PT=60: bad cseq e682 expected=0b49
бесконечно.
Перезагрузка Pi не исправляет это (например, поток YT все еще терпит неудачу, и статус sudo systemctl StreamToYouTube возвращает тот же поток ошибок "bad cseq"), но перезагрузка камеры это исправляет. Мне интересно, что именно означает эта ошибка, и как сообщить об этом в Reolink.
В состоянии "сбой" камера работает нормально с других клиентов, например, я могу запустить Reolink.app на моем Mac или просмотреть веб-страницу камеры из любого браузера, и видео выглядит нормально.
Но по какой-то причине поток RTSP выглядит просто так, что ffmpeg не может его разрешить.
Это довольно повторяющееся, если я быстро останавливаю / запускаю службу, но перезапуск с 5-секундной паузой в моем скрипте, похоже, не беспокоит.
Спасибо!