LINUX.ORG.RU

Seek в транскодированных потоках

 , , seek


0

2

Имеем сервер с mediatomb и файл-помойкой, PS3. Нарыли патч, который добавляет возможность шукать (ака seek) по потокам. Автор использовал сабж так:

<profile name="mencoder-mpeg2" enabled="yes" type="external">
<mimetype>video/mpeg</mimetype>
<accept-url>yes</accept-url>
<first-resource>yes</first-resource>
<accept-ogg-theora>yes</accept-ogg-theora>
<avi-fourcc-list mode="ignore">
<fourcc>XVID</fourcc>
<fourcc>xvid</fourcc>
<fourcc>DX50</fourcc>
</avi-fourcc-list>
<agent command="mencoder" arguments="-ss %seconds -really-quiet -autosub %in -keep-pts -oac lavc -ovc lavc -channels 2 -of mpeg -lavdopts debug=0:threads=4 -lavcopts autoaspect=1:vcodec=mpeg2video:acodec=ac3:abitrate=384:threads=4:keyint=1:vqscale=1:vqmin=2 -mpegopts format=mpeg2:muxrate=500000:vbuf_size=1194:abuf_size=64:tsdelta=%seconds -mc 0.1 -alang eng -o %out" can-seek="yes"/>
<buffer size="1048576" chunk-size="131072" fill-size="262144"/>
</profile>
Всё бы может и ничего, но мне надо в h264, соня его умеет только из mpegts кушать. Наваял скрипт, который делает это «ffmpeg -ss $SEEK -i «${INPUT}» -vcodec libx264 -vpre libx264-mt -acodec ac3 -ab 512k -bufsize 1048576 -f mpegts - > «${OUTPUT}»». Запустил. Тут то и началось веселие... В общем оно шукает, вот только соня принимая пошуканный поток, ждёт когда ему будет скормлено всё от 0 до позиции $SEEK в уже порезанном потоке. На выходе seek происходит в точку в два раза дальше запрошенной. Ну и дикие тормоза (пока соня молча хавает, то что считает лишним). Есть у меня подозрение, что у автора эту проблему решает опция « -mpegopts tsdelta=%seconds». Таки вопрос, есть ли аналогичное решение в ffmpeg? Ну или хотя бы способ быстро сгенерить «лишнее» видео в начале потока (пустые фреймы может?), дабы скормить его соньке?

★★★★★

facepalm.ts(4GB) час от часу не легче... mecoder -of mpeg выдает пустоту... -of lavf не пишет в пайпы... печаль. ЛОР как всегда идей не имеет?

erfea ★★★★★
() автор топика
19 августа 2013 г.
Ответ на: комментарий от Jurik_Phys

Неа, проблему решила покупка телека. Эффект побочный, но зомбоящик оказался всеядным и умеет dlna. Патч, таки корявый. PS3 анально огоржен по самое не могу (почти всё мне нравится в этой железке, но сони пропиерасты до мозга костей и это не лечится). ЗЫ mediatomb похоже хоронить пора, пользую minidlna.

erfea ★★★★★
() автор топика

Мдя, с трудом (версия с сайта с последними версиями библиотек, например, libmp4v2 не собирается. Патчил пакет исходников из дистрибутива /дебиан/) собрал mediatomb c обозначенным в теме патчем.

Но, на этом всё и остановилось. Клиент у меня - vlc, но сервер на его попытки что-либо перемотать не реагирует, что выражется в том, что перекодировщик не перезапускается с новыми параметрами, которые он должен, по-идее, получать от vlc.

Некоторые настройки:

<mimetype-profile-mappings>
      <transcode mimetype="video/x-msvideo" using="test"/>
</mimetype-profile-mappings>
<profile name="test" enabled="yes" type="external">
        <mimetype>video/x-matroska></mimetype>
        <accept-url>yes</accept-url>
        <first-resource>yes</first-resource>
        <agent can-seek="yes" command="test.sh" arguments="%in %out %seconds"/>
        <buffer size="5242880" chunk-size="102400" fill-size="102400"/>
      </profile>
test.sh
#! /bin/bash

echo $1 $2 $3 >> /test.sh.out
vlc -I dummy "$1" --start-time=$3 --sout "#transcode{vcodec=h264,vb=500,width=600,acodec=mpga,ab=96,samplerate=44100,channels=2}:standard{access=file,mux=ps,dst=$2}" vlc:quit
Выхлоп test.sh.out
.../The.Big.Bang.Theory.S06E01.HDTV.Kuraj-Bambey.Rus.avi /tmp/mt_transcode_IQZJ2W 0,000000
.../The.Big.Bang.Theory.S06E01.HDTV.Kuraj-Bambey.Rus.avi /tmp/mt_transcode_W7IK2W 0,000000
.../The.Big.Bang.Theory.S06E01.HDTV.Kuraj-Bambey.Rus.avi /tmp/mt_transcode_HXH11W 0,000000
Перезапуск кодирования соответствует остановке/запуску воспроизведения в vlc, естественно, с нулевым временем. Как заставить vlc посылать на сервер сообщение, о том, что нужно перемотать видео в текущую позицию, ума не приложу.

P.S. проект действительно, загибается. Цитата одного из двух авторов mediatomb:

я купил себе старый УАЗик, и теперь все свободное время в нем ковыряюсь :) Отремонтирую, тогда надеюсь дальше дело пойдет с MT...

Jurik_Phys ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.