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

Более наркоманскую документацию, чем у gstreamer, я видел только у одного отечественного вендора.

Share this post


Link to post
Share on other sites

Ivan_83, ну если VLC отлично работает, зачем его менять?

Share this post


Link to post
Share on other sites

HD контент rtsp://78.140.209.20/live/piktv3pik3tv

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this