@crossassembler

Как подменить изображение в процессе трансляции видеопотока c помощью FFmpeg?

На поток с камеры делается наложение прозрачного png-изображения с логотипом вверху и показаниями термометра внизу.
ffmpeg -rtsp_transport tcp -i "rtsp://admin:12345@xx.xxx.xx.x/h264"  -i "/home/cam/iptv_broadcast/logo.png" -filter_complex "[0:v][1:v] overlay=25:25" -vcodec libx264 -b:v 3000k  -f mpegts "udp://@xxx.xxx.x.xxx:xxxx"

Показания с термометра должны обновляться каждые 15 минут. Только если подменить файл logo.png во время вещания - трансляция происходит без изменений. Помогает только перезапуск трансляции.
  • Вопрос задан
  • 4598 просмотров
Пригласить эксперта
Ответы на вопрос 1
@crossassembler Автор вопроса
С подменой изображения на лету средствами FFmpeg не взлетит, однако я решил задачу с помощью фильтра drawtext. Логотипы и эмблемы статичные, а вот сами значения меняются благодаря опции reload=1

ffmpeg -rtsp_transport tcp -i "rtsp://admin:12345@xx.xxx.xx.x/h264"  -i "/home/cam/iptv_broadcast/logo.png" 
-filter_complex "[0:v][1:v] overlay=50:10, drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf:fontcolor=0xffa500:fontsize=45:x=160:y=985:textfile=/home/cam/iptv_broadcast/temp.txt:reload=1" 
-vcodec libx264 -b:v 3000k  -f mpegts "udp://@xxx.xxx.x.xxx:xxxx"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы