Опыт настройки HMS и Sony W5500 + несколько вопросов

Alex Commandor
Posts: 21
Joined: Sat Mar 13, 2010 2:22 pm

Re: Опыт настройки HMS и Sony W5500 + несколько вопросов

Post by Alex Commandor »

Alexander Great wrote:Но еще предлагают такой вариант ffmpeg -r 23.976 -f h264 -i input.h264 -f ac3 -i input.ac3 -vcodec copy -acodec copy -f vob output.vob :shock: Говорят что работает на PS3. А наши с вами телеки, это практически тоже что PS3, только еще чуть тупее. ;)
Да оно то вроде так, только вот есть нюансы ;)
1) Транскодить на лету в х264 я ну просто мега как не хочу :roll: Причина - ощутимо возрастает нагрузка на проц, в МПЕГ2 транскодинг идет намного "легче". Когда мое семейство смотрит на ТВ какой-то фильм, который транскодится в МПЕГ2, то на компе я спокойно могу делать кучу других вещей, включая запуск какой-нить ресурсоемкой игрульки :) Ни просмотр фильма, ни скорость игры в данном случае не страдают. А вот транскодинг в х264 сразу же забивает оба ядра моего проца процентов на 80, так что на компе уже особо не разгонишься :(
2) Не думаю, что принудительный конверт частоты кадров (-r 23.976) что-то кардинально поменяет. Стандартом же допускаются другие частоты, значит, проблема не в этом.
3) -f vob - чистые vob-ы наш телек (по-моему :roll: ) тоже понимает только с одной или двумя дорожками. Но тут утверждать не берусь, - не помню. Дома проверю.
HMS 1.21.2 + Sony KDL32W5500, Win7 x64 Ultimate, Core2Duo E8500 3.16GHz, 8GB RAM, ATI Radeon 4870HD 512MB + NVIDIA GeForce GT 440 1GB (hybrid PhysX)
Alexander Great
Posts: 99
Joined: Wed Mar 10, 2010 9:24 am

Re: Опыт настройки HMS и Sony W5500 + несколько вопросов

Post by Alexander Great »

Alex Commandor wrote: 1) Транскодить на лету в х264 я ну просто мега как не хочу
А никто и не предлагает. Там стоит -vcodec copy. Идея в чем? Сделать так, чтобы фильмы в mkv, которые не нуждаются в транскодировании (1280х720 и 1920х1080), передавались на телек со всеми звуковыми дорожками, без перекодировки видео, и так, чтобы работала перемотка. Для этого нужен контейнер m2ts. ffmpeg его делать не умеет. mencoder - судя по всему тоже. TsMuxer нас явно подводит. Вот я и пытаюсь придумать какой-то обходной вариант. На одном форуме предложили для этих целей использовать контейнер VOB. Чем черт не шутит? Вдруг заработает?
Alex Commandor wrote:2) Не думаю, что принудительный конверт частоты кадров (-r 23.976) что-то кардинально поменяет. Стандартом же допускаются другие частоты, значит, проблема не в этом.
Конечно не в этом. Я просто закопипастил с другого форума, не разобравшись что такое -r 23.976. :oops:
Alex Commandor wrote:3) -f vob - чистые vob-ы наш телек (по-моему :roll: ) тоже понимает только с одной или двумя дорожками. Но тут утверждать не берусь, - не помню. Дома проверю.
Ну с двумя хотя-бы точно понимает? ;) Вопрос заработает ли вся эта кухня, если в VOB запихнуть h264.

Проверьте пожалуйста, если будет время. Я никак пока добраться до компа не могу.
Alexander Great
Posts: 99
Joined: Wed Mar 10, 2010 9:24 am

Re: Опыт настройки HMS и Sony W5500 + несколько вопросов

Post by Alexander Great »

Вчера у меня приключилось что-то странное... Телек отказался переключать звуковые дорожки на обычной дивидишке, которые идут без транскодирования. Причем пробовал на 2-х. На одной было 4 звук дорожки, на другой 2. Отключал ваши профили, включал стандартные, дело не в них. :(

Что за хрень? Перелопатил все настройки телека, ничего не нашел полезного.
dj_lucky
Posts: 20
Joined: Wed Oct 26, 2011 3:48 pm

Re: Опыт настройки HMS и Sony W5500 + несколько вопросов

Post by dj_lucky »

Сделал как тут http://www.homemediaserver.ru/forum/vie ... =520#p7268 написано...и, о боже....наконец-то стали запускаться файлы mkv!!!
Но...после того, как переустановил программу, перестали переключаться звуковые дорожки (раньше их можно было переключить одной кнопкой на пульте,теперь ей включается объемный звук). Можно это как-то исправить?

Заранее спасибо!
Alex Commandor
Posts: 21
Joined: Sat Mar 13, 2010 2:22 pm

Re: Опыт настройки HMS и Sony W5500 + несколько вопросов

Post by Alex Commandor »

Спустя столько времени решил вернуться в эту тему и поделиться своей новостью. Может, для многих это уже и не новость, но я только сегодня раскопал-таки, как заставить свой телик воспроизводить ВСЕ звуковые дорожки с возможностью их переключения пультом телевизора (для любого видеофайла!). Всё оказалось до банальности просто (почти :) ).

:!: Сразу хочу предупредить, что версия HMS у меня 1.21.2 - я пробовал обновиться на последнюю, но там транскодер hmsmpeg совсем по-другому работает со звуковыми дорожками, а именно - из-за обновления ключей командной строки нового ffmpeg недоступен ключ -newaudio, которым я добавлял все звуковые дорожки. Я пробовал разобраться с новыми ключами, но с наскока не получилось, потому я откатился на версию 1.21.2. В ней работает всё, что мне надо.

1. Я не тестировал на стандартных профилях транскодирования, потому что у меня давно используется для всего контента доработанный мною профиль, который я назвал "Фильмы (основной)+AUDIO". В нем была небезуспешно предпринята попытка добавлять в транскодированный файл все звуковые дорожки, вот только при стандартных для SONY W5500 настройках телик все-равно видел не все, а только две из дорожек. Код профиля ниже:

Code: Select all

var
  iAudioStreamNo, i, nAudio, nPos: Integer;
  sParams, sTransParamNew, sCurrAudio, sTransVideoParams: string;
begin
  nAudio:=mpAudioStreams;
  if mpInternetItem then
    TranscodingParams := HmsTranscodingProfileParams('Интернет-телевидение')
  else if mpSubItemsCount > 0 then 
    TranscodingParams := HmsTranscodingDvdParams
  else begin
    sTransVideoParams := HmsTranscodingVideoParams; 
    if nAudio > 1 then begin
       nPos:=   mpAudioStreamNo ;
       sParams := HmsTranscodingInputParams + sTransVideoParams
                  + HmsTranscodingMapParams(mpAudioStreamNo)
                  +  ' "<OUTPUT FILE>" ';
       for i:=0 to nAudio-1 do begin
         if i<>nPos then begin
           sTransParamNew:=ReplaceStr(HmsTranscodingMapParams(i),'-map 0:0','');
           sTransParamNew:=ReplaceStr(sTransParamNew,'-vstreamid 1',''); 
           sParams := sParams + sTransParamNew
           + HmsTranscodingAudioCodecParams(cfgTranscodingAudioBitrate, false)
           + ' -newaudio';
           end;
           sParams:=ReplaceStr(sParams,'-vstreamid 1','-map 0:0');
         end;
           for i:=2 to 29 do begin
             sParams := ReplaceStr(sParams, '-astreamid '+IntToStr(i), '-map 0:'+ IntToStr(i-1));
           end
        end
    else begin
       sParams := HmsTranscodingInputParams + sTransVideoParams
         +  HmsTranscodingMapParams(mpAudioStreamNo);
         end;
    TranscodingParams :=  sParams;
    end;
end.
Еще раз хочу напомнить, что с версией 1.22 и выше данный код НЕ работает - ключ -newaudio больше не воспринимается транскодером ffmpeg :( Я нашел только возможность включить сразу все дорожки с перекодированием, но если в файле 6 дорог, и 5 из них уже в АС3, а одна в DTS, то я не вижу никакого смысла повторно перекодировать 5 из них. А вот наличие ключа -newaudio давало отличную возможность добавлять каждую дорожку с нужными параметрами: если это уже был АС3 или МП2-3, то он просто копировался в выходной файл, если же что-то из того, что телик напрямую не понимает (например, тот же DTS), то добавляются параметры транскодирования.

2. Конечно, все возможные комбинации форматов и расширений я раньше не проверял - на это надо уйму времени. Просто периодически, наскоками, пытался включить что-то новое и проверить, как будет идти воспроизведение. И вот сегодня произошло чудо: я в очередной раз сменил в настройках устройства в пункте "Транскодер" опцию "Формат файла (контейнер)" со стандартного MPEG (DVD) на MPEGTS, и начал менять расширение для транскодированного файла (пункт "Файлы, субтитры", опция "Расширение").
Только расширение надо не руками туда набирать, а жимнуть на кнопку с вопросительным знаком и выбрать нужный тип из раскрывшегося списка. В этом случае сразу меняется и опция "MIME-тип".

3. В общем, при выборе расширения m2t произошло чудо - телик наконец-то нормально воспринял поток MPEGTS и, самое главное, стал переключать аудиодорожки! :D Правда, почему-то по-умолчанию не всегда выбирается та, которая задана в файле, но для меня это уже мелочь, не стоящая внимания. ;) Звук переключается, перемотка работает - что еще надо?

Так что если у кого-то до сих пор присутствует проблема со звуковыми дорожками, то пробуйте воспользоваться моим набором: сдублируйте профиль траскодирования "Фильмы (основной)", переименуйте его, например, в "Фильмы (основной)+AUDIO", скопируйте туда мой код (выше) и сохраните профиль, сбросьте настройки ТВ в дефолтные (только же не настройки не самого телика, а в HMS настройки устройства! ;) ), затем выберите новый профиль как профиль по-умолчанию, контейнер смените на MPEGTS, а расширение файла - на m2t (при этом MIME-тип должен стать video/vnd.dlna.mpeg-tts). Всё. По крайней мере, у меня так всё заработало :D

Если у кого будут вопросы - чем смогу, помогу.
HMS 1.21.2 + Sony KDL32W5500, Win7 x64 Ultimate, Core2Duo E8500 3.16GHz, 8GB RAM, ATI Radeon 4870HD 512MB + NVIDIA GeForce GT 440 1GB (hybrid PhysX)
Post Reply