Настройки ffmpeg или альтернативы ffmpeg на raspberry pi для потокового видео

У меня есть Raspberry Pi (модель B), работающая на raspbian wheezy на SD-карте на 16 ГБ. У меня также есть флэш-память на 32 ГБ, подключенная к USB. Я пытаюсь передать видео (файл mp4 с кодировкой h264 1280x720) через Ethernet с этого флэш-накопителя.
Я использую ffmpeg+ffserver. Вот ffserver.conf (соответствующие части):

...
MaxBandwidth 10000
<Feed feed1.ffm>
...
FileMaxSize 100M
ACL allow 127.0.0.1
</Feed>
...
<Stream test.flv>
Feed feed1.ffm
Format flv
VideoSize 288x176 #made small just for testing
NoAudio
</Stream>
....

Я запускаю ffserver, затем вызываю ffmpeg с помощью этой команды:

ffmpeg -re -an -i /mnt/u32/main.mp4 -r 25 -bit_rate 300k http://localhost:8090/feed1.ffm

А у меня фпс 3-5 максимум. Естественно, когда я пытаюсь просмотреть поток на другом компьютере, он очень прерывистый и практически непригоден для использования.

Я пропустил какие-то настройки? Или, возможно, есть другое решение для потоковой передачи, которое использует графический процессор, а не только процессор, как это делает ffmpeg? Я даже открыт для предложений о других платах (например, pandaboard? или кластеризация нескольких RPi?). Кроме того, я гибко отношусь к выходному формату.


person ierdna    schedule 21.12.2012    source источник
comment
На что ты стримишь? Нельзя ли просто скопировать файл через Ethernet (SMB/SSH) и декодировать на другом конце?   -  person Terence Eden    schedule 24.12.2012
comment
файл весит около 6гб и я транслирую на айпад. я знаю, что в конечном итоге мне нужно будет использовать HLS, но сейчас я начинаю с простого, просто пытаюсь передать его в браузер.   -  person ierdna    schedule 14.01.2013
comment
В настоящее время я не верю, что существует форк FFMPEG, который использует графический процессор Raspberry Pi, который обычно является ядром его разрекламированных функций вывода видео. Эта ветка raspberrypi.org/phpBB3/viewtopic.php?f=31&t= 17500 кажется наиболее актуальным.   -  person mrmagooey    schedule 29.01.2013


Ответы (1)


Попробуйте это с модулем rtmp-nginx . Мне довольно хорошо удается транслировать его с помощью ffmpeg. Соответствующий кодек для потокового видео — h264. Я сделал скрипт на Python, который запускает ffmpeg и транслирует его с помощью nginx, возможно, он вам поможет. Теперь также можно использовать аппаратное кодирование с ffmpeg.

person Cristian Gabor    schedule 14.10.2016