Jump to content

Recommended Posts

Posted

Со спутника принимаю MPEG2, надо транскодировать в h264.

Временно на Винде VLC транскодит, проц отжирается неплохо.

3 канала транскодить - 10GHz занимает по процу.

Если использовать CUDA то полегче будет?

 

Какие еще варианты транскодирования в H264?

Posted

Энкодинг H264 к CUDA никакого отношения не имеет. Вообще. Да, у Nvidia сейчас готовятся аппаратный энкодер, но это GPU, отдельное ядро, но никак не CUDA.

 

libx264 (который в VLC) на сегодняшний день даёт лучшие результаты по качеству+битрейту при том что он бесплатный. По крайней мере ни elecard, ни mainconcept никаких результатов лучше не предоставляют.

 

Так что по факту никаких других вариантов и нет.

 

У вас же просто плохие настройки. Во-первых, выкиньте винду, поставьте более подходящую операционную систему под которой вы сможете без проблем собрать свежий VLC, во-вторых показывайте ключи запуска VLC.

Posted

Ну сказали же: «у Nvidia сейчас готовится аппаратный энкодер». Не «воткнут в каждый продаваемый компьютер», а «готовится»

Posted

libx264 выполняет кодирование полностью на CPU.

На проц нагрузка большая, чтобы перекодировать в h264 3 канала - отжирается проц на 10GHz

Posted

Вы читаете ветку или только пишете?

 

Вам сказали уже: приводите настройки VLC. У libx264 под сотню настроек. Думаете их просто так какой-то идиот впихнул?

Posted

maxlapshin

vlc -vvv rtp://239.10.10.5:1234 --sout "#transcode{vcodec=h264,vb=0,scale=0,acodec=mp4a,ab=128,channels=2,samplerate=44100}:rtp{dst=239.10.10.7,port=1234,mux=ts,ttl=1}"

 

Поставил убунту, vlc 2.0.3 также на транскодирование 3-х каналов - 10GHz занимает.

Posted

Строка запуска такая:

vlc rtp://239.10.10.5:1234 --sout #transcode{vcodec=h264,venc=x264{qpmin=26,subme=4},vb=0,scale=0,acodec=mp4a,ab=128,channels=2,samplerate=44100,deinterlace}:rtp{dst=239.10.10.7,port=1234,mux=ts,ttl=1}

 

нагрузка на проц упала в половину, 6GHz отъедается на 3-х каналах, это получается по 2GHz на канал примерно.

Нормально? или еще параметры менять?

Posted

Начните с того, что просто возьмите мой пример.

 

У вас, например, vb=0. Какой битрейт то хотите?

 

Ну и всякие мелочи типа убрать ресемплинг звука. Зачем вам это делать?

Posted

ок, спасибо.

Еще нескромный вопрос, а можно ли в влс несколько потоков с различным битрейтом сделать?

Интересует возможность адаптированного битрейта для клиента.

Posted

Что то похожее?

 

/usr/bin/cvlc rtp://239.10.10.4:1234 --sout "#duplicate{ \

dst={transcode{vcodec=h264,venc=x264{qpmin=26,subme=4},vb=512,scale=0,acodec=mp4a,ab=64,channels=2,samplerate=44100,deinterlace}:rtp{dst=239.10.10.14,port=1234,mux=ts,t

tl=1}}, \

dst={transcode{vcodec=h264,venc=x264{qpmin=26,subme=4},vb=1024,scale=0,acodec=mp4a,ab=96,channels=2,samplerate=44100,deinterlace}:rtp{dst=239.10.10.14,port=1235,mux=ts,

ttl=1}}, \

dst={transcode{vcodec=h264,venc=x264{qpmin=26,subme=4},vb=0,scale=0,acodec=mp4a,ab=128,channels=2,samplerate=44100,deinterlace}:rtp{dst=239.10.10.14,port=1236,mux=ts,tt

l=1}}}" > /dev/null 2>&1 &

Posted

Зачем вы пишите vb=0? Что вы хотите этим получить?

 

Насчёт адаптивного битрейта: он несовместим с rtp udp. Если вы хотите адаптивный стриминг, то нужен HLS.

Posted (edited)

vb=0 можно в принципе опустить, этот параметр я как понимаю при нуле не учитывается.

т.е. битрейт не изменять.

про мультибитрейт - vlc транскодит и отправляет в мультикаст, вовза принимает эти потоки с различными битрейтами, а там уже дело техники через flowplayer.

Edited by Macro
Posted

Intel Quick Sync насколько понимаю даёт намного лучше результат. в той же Wowza встроена возможность транскодинга

Вовзой транскодить дорого! На каждый стрим покупать надо.

Как транскодить на Intel Quick Sync?

Posted

Для Intel Quick Sync надо покупать софт, который этим пользуется. Плюсы этой штуки я бы сказал, что неоднозначны.

 

Что вы хотите сделать, не указывая битрейт потока? Какой вообще смысл в этом? Вам всегда надо указывать целевой битрейт потока.

 

Flowplayer и адаптивный стриминг несовместимы. Забудьте и даже не пытайтесь этим заниматься.

 

Запускайте 3 потока с VLC, ставьте erlyvideo, дальше OSMF-плеер, например StrobeMediaPlayback и готово.

Posted

Не советую ffmpeg вместо vlc по одной маленькой причине: ffmpeg плохо обрабатывает потери кадров. Учитывая, что вы все пользуетесь не нормальными платами захвата, умеющими не терять данные, а всякими железками, льющими видео по мультикасту, потери данных бывают. В итоге ffmpeg через несколько дней может развести аудио и видео на 2-4 секунды. Неприятно.

 

Больше никакой особой разницы между ними нет, поэтому фраза «обойтись только ffmpeg» мне непонятна, потому что звучит как «vlc большой, тяжелый и медленный, а ffmpeg маленький и быстрый». Это не так.

  • 10 months later...
Posted

Добрый день, Камрады.

Подниму-ка старую темку.

Хочу транскодить мультикаст в мультикаст, из mpeg2 в h264, SD каналы, на цпу с помощью VLC, с оптимально низким битрейтом.

Со спутников в мультикаст вещает астра4.

Дел никогда с транскодингом не имел, и чувствую, что буду долго в этом разбираться, а не хочется терять время.

Поэтому если кто-то подскажет (за пиво или за кэш))) готовую оптимальную строку запуска vlc для этого - буду премного благодарен.

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.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.