цикл ffmpeg не работает, продолжает отбрасывать кадры после первого цикла

#ubuntu #ffmpeg #raspberry-pi #debian #raspberry-pi3

#ubuntu #ffmpeg #raspberry-pi #debian #raspberry-pi3

Вопрос:

Я пытался заставить это работать, но получил эту ошибку, я новичок в этой вселенной, поэтому я прошу о помощи. (отбрасывайте кадры после первого цикла (поскольку временная метка внезапно вернется в прошлое).)

 [flv @ 0x117a2f0] Video codec rawvideo not compatible with flv
    Could not write header for output file #0 (incorrect codec parameters ?): Function not implemented
  

Теперь, когда я пытаюсь выполнить цикл, мой код останавливается после первого цикла, отбрасывая кадры…

 ffmpeg -f alsa -i default -f lavfi -re -fflags  genpts -i "movie=/home/pi/Documents/Youtube/video.mp4:loop=0, setpts=N/(FRAME_RATE*TB)" -c:v copy -c:a aac -f flv -max_muxing_queue_size 400 rtmp://a.rtmp.youtube.com/live2/pfjd-jhjs-k3td-XXXX
  

Код, который я использовал до того, как попытался исправить проблему с циклом, но никаких других ошибок не было:

 ffmpeg -re -stream_loop -1 -f alsa -i default -i /home/pi/Documents/Youtube/video.mp4 -c:v copy -c:a aac -f flv -max_muxing_queue_size 400 rtmp://a.rtmp.youtube.com/live2/pfjd-jhjs-k3td-XXXX
  

Кто-нибудь может помочь мне также запустить цикл? PS: я транслирую видеофайл в сочетании со звуком на рабочем столе (когда я проигрываю песни в QMMP для детей (детский радиопроект))

Заранее спасибо!

Ответ №1:

Используйте

ffmpeg -re -f alsa -i default -re -stream_loop -1 -i "/home/pi/Documents/Youtube/video.mp4" -c:v copy -c:a aac -f flv -max_muxing_queue_size 400 rtmp://a.rtmp.youtube.com/live2/pfjd-jhjs-k3td-XXXX

в stream_loop до недавнего времени была ошибка, поэтому используйте ffmpeg 4.1 или новее. lavfi Устройство будет выводить только декодированные кадры, поэтому вам необходимо напрямую использовать входной файл, чтобы избежать перекодирования.

Для потоковой передачи в реальном времени на всех входных данных должен быть установлен -re флаг.

Комментарии:

1. хорошо, сейчас я на ffmpeg версии 3.2.12, попытаюсь обновить его, спасибо! Должен ли он компилировать ffmpeg самостоятельно или? в ffmpeg -версии указано, что версия ffmpeg 3.2.12 , но если я попытаюсь ее установить, там будет указано, что ffmpeg уже является новейшей версией (7: 3.2.12-1 ~ deb9u1 rpt1).

2. Теперь я получаю сообщение об ошибке: ffmpeg version git-2019-03-10- 5ab44ff Авторское право (c) 2000-2019 разработчики FFmpeg создали с помощью gcc 6.3.0 (Raspbian 6.3.0-18 rpi1 deb9u1) 20170516 конфигурация: —enable-shared —prefix=/usr libavutil 56. 26.100 / 56. 26.100 libavcodec 58. 47.103 / 58. 47.103 libavformat 58. 26.101 / 58. 26.101 libavdevice 58. 6.101 / 58. 6.101 libavfilter 7. 48.100 / 7. 48.100 libswscale 5. 4.100 / 5. 4.100 libswresample 3. 4.100 / 3. 4.100 Неизвестный формат ввода: ‘alsa’

3. Извините, не видел вашу ссылку, я уже скомпилировал ее из git (пару дней назад файл все еще был у меня)

4. Вам нужно будет собрать его с поддержкой ALSA. Смотрите trac.ffmpeg.org/wiki/CompilationGuide/RaspberryPi . В качестве альтернативы, если у вас есть другое устройство, которое может передавать аудио в ffmpeg, вы можете пойти этим путем.

5. Снова ваш ответ не обновился… попробую это решение сейчас… получил ffmpeg по вашей ссылке, Вот скриншот ошибки: [ссылка] prntscr.com/myzuv2

Ответ №2:

Потоковая передача файла в цикле со звуком рабочего стола на YouTube работает. Спасибо всем!

 ffmpeg -re -f alsa -i default -re -stream_loop -1 -i "/home/pi/Documents/Youtube/video720p.mp4" -c:v copy -c:a aac -f flv -max_muxing_queue_size 400 rtmp://a.rtmp.youtube.com/live2/pfjd-jhjs-k3td-xxxx
  

ffmpeg версии 4.1, если у вас более старая версия ffmpeg, команда цикла может не работать…