Jump to content
Калькуляторы

Нужна помощь в организации вещания rtsp->multicast vlc расходует много ресурсов

Приветствую! Имеется поток RTSP в HD качестве.

Видеокодек: h264-MPEG4 AVC, разрешение 1280x720

Аудиокодек: MPEG AAC (mp4a)

Необходимо его транслировать по multicast. Самым простым решением для этой задачи могло бы быть вещание с помощью VLC.

Серверная машина:

HP Xeon Quad Core 24 Гб RAM

Если на входе канала выбрать RTSP поток, а на выходе указать мультикаст-группу, то видео вещается, но изображение смешивается, даже с кешингом и параметром use key frame, будто есть какие-то проблемы с ключевым кадром.

su vlc -c "cvlc --loop -d rtsp://xx.xx.xx.xx/path --network-caching=2000 --sout-mux-caching=2000 --sout '#std{access=udp{ttl=15},mux=ts{tsid=22,pid-video=23,pid-audio=24,pid-pmt=25,use-key-frames},dst=xxx.xxx.x.xxx:port}'"

При транскодировании происходит генерация ключевого кадра и проблема пропадает.

su vlc -c "cvlc --loop -d rtsp://xx.xx.xx.xx/path --network-caching=2000 --sout-mux-caching=2000 --sout '#transcode{vcodec=h264, acodec=mpga}:std{access=udp{ttl=15},mux=ts{tsid=22,pid-video=23,pid-audio=24,pid-pmt=25,use-key-frames},dst=xxx.xxx.x.xxx:port}'"

Однако, данный процесс занимает до 10% загрузки ЦП. Можете ли подсказать, что делается не так? Как можно оптимизировать процедуру или же какие программно-аппаратные решения можно использовать для данной задачи?

Share this post


Link to post
Share on other sites

Попробуйте проект erlyvideo(в бесплатной версии вроде все есть для этого) , я поток с камер вещал через него. Как раз он понимает h264.

Edited by roysbike

Share this post


Link to post
Share on other sites

Erlyvideo транскодить быстрее не будет. 10% cpu это совсем немного, на 8 ядер это будет 60-80 каналов, если конечно транскод не пожирает кеш цпу и тем самым процессы не будут мешать друг другу

Share this post


Link to post
Share on other sites

При использовании flussonic в результате получается каша, а не изображение(вещание ведется без транскодирования).

vlc клиент в статистике показывает множество потерянных кадров

Share this post


Link to post
Share on other sites

Пробуйте включить кеширование:

 

vlc rtsp://${cam}.office:554/live1.sdp --rtsp-caching=400 --http-caching=1000 \
...

У меня дальше транскодируется во flash. Проц тоже некисло кушается...

Edited by vlad11

Share this post


Link to post
Share on other sites

А кто источник видео?

Я бы попробовал с параметрами его кодера поиграться.

У меня 80 потоков вещается на довольно средненьком сервере, вещается нормально.

Правда я не с командной строки параметры задаю, а в vlm-файле, примерно таком:

new cam-305 broadcast enabled loop
setup cam-305 input  rtsp://10.102.3.5:554/live/ch00_0
setup cam-305 output #std{access=udp,dst=239.0.3.5:1234}
control cam-305 play

Share this post


Link to post
Share on other sites

Предположу, что из-за универсальности VLC.

На нем и транскодинг, и монтаж, и сведение. И всеядный он.

Для продакшна говорят что не очень стабилен, но лично у меня, несмотря на все страшилки по утечкам памяти и падениям, стабильно работает месяцами (под сотню потоков, под 200 Мбит/с трафика).

Share this post


Link to post
Share on other sites

и снова я спрошу про gstreamer: почему не он?

 

Потому что у нас в стране даже трава под запретом. А чтобы разобраться в лапше gstreamer нужен ядерный коктейль из травы, грибов и тяжелой химии.

Share this post


Link to post
Share on other sites

Потому что у нас в стране даже трава под запретом. А чтобы разобраться в лапше gstreamer нужен ядерный коктейль из травы, грибов и тяжелой химии.

"мануалы читать и думать мы не хотим, а готовых примеров для наших нужд не нагуглилось".

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.