ffmpeg публикует VP8 для Janus Gateway 100% CPU MBP

Я хочу использовать Janus Gateway для потоковой передачи с очень низкой задержкой для тысячи зрителей из одного источника.

Я стремлюсь к потоковой передаче видео VP8, поскольку поддержка H.264 еще не упала в Chrome.

Моя конфигурация

[gst-rpwc]
type = rtp
id = 1
description = Test Stream
audio = no
video = yes
videoport = 8004
videopt = 100
videortpmap = VP8/90000

Сначала я тестирую OSX со встроенной веб-камерой. Это трубопровод

ffmpeg -f avfoundation  -video_size 640x480 -framerate 30 -i "0" -b:v 800k -c:v libvpx rtp://x.x.x.x:8004

Но мой процессор Retina Macbook Pro все время работает на 100%, а на стороне клиента я получаю только несколько кадров каждые несколько секунд. Я считаю, что преобразование встроенной камеры iSight в VP8 слишком интенсивно. Есть ли способ сделать это преобразование более эффективным?


person Titan    schedule 02.06.2016    source источник


Ответы (1)


Я не эксперт по Janus, но для потока WebRTC VP8 имеющийся у вас videofmtp не имеет смысла, поскольку эта строка предназначена для h.264 и, в меньшей степени, videopt - это не то, что я видел для VP8 , это значение должно быть 100. Самая большая проблема здесь в том, что ffmpeg не может выполнять DTLS, поэтому даже с указанными мной модами это, вероятно, не сработает.

person Paul Gregoire    schedule 02.06.2016
comment
Я внес несколько изменений в свой исходный вопрос, чтобы отразить изменения, внесенные недавно. Вы правы насчет videofmtp и videopt. - person Titan; 02.06.2016
comment
Не могу вспомнить вариант, но попробуйте установить формат pix на YUV420 - person Paul Gregoire; 02.06.2016
comment
У меня он работает с ffmpeg -f avfoundation -video_size 640x480 -framerate 30 -i "0" -c:v libvpx -f rtp rtp://x.x.x.x:8004, однако видео в браузере показывает только 1-2 кадра каждые 10 секунд или дольше. Я думаю, что сам поток от издателя (мой ноутбук) испытывает трудности, как показано на этой гифке, обратите внимание, как он изо всех сил пытается продвинуть кадры ... f.cl.ly/items/1l0L0w3M182O363F2Z1w/ - person Titan; 02.06.2016
comment
Вероятно, вы захотите убедиться, что ваша пропускная способность настроена правильно, чтобы обеспечить 30 кадров в секунду при этих размерах. - person Paul Gregoire; 03.06.2016
comment
Когда я запускаю ffmpeg с указанным выше, мой процессор Retina Macbook Pro все время работает на 100%, поэтому я думаю, что проблема в том, что он слишком требователен к ресурсам при преобразовании в VP8. Я обновил вопрос, чтобы отразить последнюю проблему. - person Titan; 03.06.2016
comment
Я бы попробовал немного поменять местами и добавить crf вот так ffmpeg -f avfoundation -video_size 640x480 -framerate 30 -i "0" -c:v libvpx -crf 10 -b:v 800k rtp://x.x.x.x:8004 - person Paul Gregoire; 03.06.2016
comment
У меня были хорошие результаты с ffmpeg -f avfoundation -pix_fmt uyvy422 -video_size 640x480 -framerate 30 -i "0" -an -c:v libvpx -deadline realtime -f rtp rtp://x.x.x.x:8004 -deadline в реальном времени - person Titan; 03.06.2016