Перейти к содержимому
Калькуляторы

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

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ни VLC, ни ffmpeg еще не научились использовать CUDA для кодирования видео, равно как и Intel Quick Sync Video.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ок, ошибся.

Значь VLC с GPU пошустрее будет транскодить в h264?

Из ОC - Линукс поставлю, как VLC под линем с GPU дружит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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 занимает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

http://erlyvideo.ru/doc/external#vlc

 

Поиграйте с qpmin и subme. Поднимая qpmin и subme можно очень сильно снизить нагрузку на CPU.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Раз у вас MPEG2, значит это SD. Современный Xeon E3 нормально жмет в районе таких 10 каналов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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 на канал примерно.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ок, спасибо.

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

/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 &

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Изменено пользователем Macro

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

на данный момент Quick Sync вроди поддерживают только

wowza и elecard

http://www.elecard.com/ru/news/news/sandy-bridge.html

 

по теме , можно ли вместо vlc обойтись только ffmpeg?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Хочу транскодить мультикаст в мультикаст, из 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.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.