Macro Опубликовано 7 января, 2013 Со спутника принимаю MPEG2, надо транскодировать в h264. Временно на Винде VLC транскодит, проц отжирается неплохо. 3 канала транскодить - 10GHz занимает по процу. Если использовать CUDA то полегче будет? Какие еще варианты транскодирования в H264? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
hyrod Опубликовано 8 января, 2013 Ни VLC, ни ffmpeg еще не научились использовать CUDA для кодирования видео, равно как и Intel Quick Sync Video. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
maxlapshin Опубликовано 8 января, 2013 Энкодинг H264 к CUDA никакого отношения не имеет. Вообще. Да, у Nvidia сейчас готовятся аппаратный энкодер, но это GPU, отдельное ядро, но никак не CUDA. libx264 (который в VLC) на сегодняшний день даёт лучшие результаты по качеству+битрейту при том что он бесплатный. По крайней мере ни elecard, ни mainconcept никаких результатов лучше не предоставляют. Так что по факту никаких других вариантов и нет. У вас же просто плохие настройки. Во-первых, выкиньте винду, поставьте более подходящую операционную систему под которой вы сможете без проблем собрать свежий VLC, во-вторых показывайте ключи запуска VLC. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Macro Опубликовано 8 января, 2013 Ок, ошибся. Значь VLC с GPU пошустрее будет транскодить в h264? Из ОC - Линукс поставлю, как VLC под линем с GPU дружит? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 8 января, 2013 libx264 выполняет кодирование полностью на CPU. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
maxlapshin Опубликовано 8 января, 2013 Ну сказали же: «у Nvidia сейчас готовится аппаратный энкодер». Не «воткнут в каждый продаваемый компьютер», а «готовится» Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Macro Опубликовано 9 января, 2013 libx264 выполняет кодирование полностью на CPU. На проц нагрузка большая, чтобы перекодировать в h264 3 канала - отжирается проц на 10GHz Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
maxlapshin Опубликовано 9 января, 2013 Вы читаете ветку или только пишете? Вам сказали уже: приводите настройки VLC. У libx264 под сотню настроек. Думаете их просто так какой-то идиот впихнул? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Macro Опубликовано 9 января, 2013 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 занимает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
maxlapshin Опубликовано 9 января, 2013 http://erlyvideo.ru/doc/external#vlc Поиграйте с qpmin и subme. Поднимая qpmin и subme можно очень сильно снизить нагрузку на CPU. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Macro Опубликовано 9 января, 2013 maxlapshin Спасибо! :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
maxlapshin Опубликовано 9 января, 2013 Раз у вас MPEG2, значит это SD. Современный Xeon E3 нормально жмет в районе таких 10 каналов. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Macro Опубликовано 9 января, 2013 Строка запуска такая: 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 на канал примерно. Нормально? или еще параметры менять? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
maxlapshin Опубликовано 9 января, 2013 Начните с того, что просто возьмите мой пример. У вас, например, vb=0. Какой битрейт то хотите? Ну и всякие мелочи типа убрать ресемплинг звука. Зачем вам это делать? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Macro Опубликовано 9 января, 2013 ок, спасибо. Еще нескромный вопрос, а можно ли в влс несколько потоков с различным битрейтом сделать? Интересует возможность адаптированного битрейта для клиента. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Macro Опубликовано 9 января, 2013 Что то похожее? /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 & Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
maxlapshin Опубликовано 9 января, 2013 Зачем вы пишите vb=0? Что вы хотите этим получить? Насчёт адаптивного битрейта: он несовместим с rtp udp. Если вы хотите адаптивный стриминг, то нужен HLS. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Macro Опубликовано 9 января, 2013 (изменено) vb=0 можно в принципе опустить, этот параметр я как понимаю при нуле не учитывается. т.е. битрейт не изменять. про мультибитрейт - vlc транскодит и отправляет в мультикаст, вовза принимает эти потоки с различными битрейтами, а там уже дело техники через flowplayer. Изменено 9 января, 2013 пользователем Macro Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alexey-it Опубликовано 9 января, 2013 Intel Quick Sync насколько понимаю даёт намного лучше результат. в той же Wowza встроена возможность транскодинга Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Macro Опубликовано 10 января, 2013 Intel Quick Sync насколько понимаю даёт намного лучше результат. в той же Wowza встроена возможность транскодинга Вовзой транскодить дорого! На каждый стрим покупать надо. Как транскодить на Intel Quick Sync? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
maxlapshin Опубликовано 10 января, 2013 Для Intel Quick Sync надо покупать софт, который этим пользуется. Плюсы этой штуки я бы сказал, что неоднозначны. Что вы хотите сделать, не указывая битрейт потока? Какой вообще смысл в этом? Вам всегда надо указывать целевой битрейт потока. Flowplayer и адаптивный стриминг несовместимы. Забудьте и даже не пытайтесь этим заниматься. Запускайте 3 потока с VLC, ставьте erlyvideo, дальше OSMF-плеер, например StrobeMediaPlayback и готово. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Macro Опубликовано 10 января, 2013 maxlapshin ок. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alexey-it Опубликовано 10 января, 2013 на данный момент Quick Sync вроди поддерживают только wowza и elecard http://www.elecard.com/ru/news/news/sandy-bridge.html по теме , можно ли вместо vlc обойтись только ffmpeg? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
maxlapshin Опубликовано 10 января, 2013 Не советую ffmpeg вместо vlc по одной маленькой причине: ffmpeg плохо обрабатывает потери кадров. Учитывая, что вы все пользуетесь не нормальными платами захвата, умеющими не терять данные, а всякими железками, льющими видео по мультикасту, потери данных бывают. В итоге ffmpeg через несколько дней может развести аудио и видео на 2-4 секунды. Неприятно. Больше никакой особой разницы между ними нет, поэтому фраза «обойтись только ffmpeg» мне непонятна, потому что звучит как «vlc большой, тяжелый и медленный, а ffmpeg маленький и быстрый». Это не так. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
L-ZiX Опубликовано 14 ноября, 2013 Добрый день, Камрады. Подниму-ка старую темку. Хочу транскодить мультикаст в мультикаст, из mpeg2 в h264, SD каналы, на цпу с помощью VLC, с оптимально низким битрейтом. Со спутников в мультикаст вещает астра4. Дел никогда с транскодингом не имел, и чувствую, что буду долго в этом разбираться, а не хочется терять время. Поэтому если кто-то подскажет (за пиво или за кэш))) готовую оптимальную строку запуска vlc для этого - буду премного благодарен. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...