LINUX.ORG.RU

Убитая тема (звук & mecoder)


0

1

Пытаюсь с видака на тв тюнер чернез композит цифрануть.
[mencoder tv:// -noskip -tv driver=v4l2:input=$input:device=/dev/video1:\
alsa:adevice=hw.$adevice:amode=0:gain=5:immediatemode=0:\
width=720:height=576:norm=PAL:fps=24 \
-ovc lavc -lavcopts vbitrate=2000:vqmin=2:vqmax=10:autoaspect \
-vf softskip,kerndeint,scale=720:576,eq=-15:15 \
-oac mp3lame -lameopts vbr=3:br=32:mode=3 -o «$file».mpg &

Звук плавно отстет. Есть решение?

★★★★★

А почему fps=24, должно быть 25?

anonymous
()

Это не важно. Все равно отстает.

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

А ffmpeg не пробовал?

В крейнем случае звук можно попробовать поправить после записи (без перекодирования видео).

anonymous
()

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

Проблема вызвана тем, что сэмплирование звука происходит по тактовому генератору звуковой карты (или тюнера, если он сам цифрует звук), а захват видеокадров по синхросигналу от источника (видака). Эти сигналы между собой не синхронизированы, а видаки обычно ещё и не очень точно выдерживают частоту кадров.

cdslow ★★
()
Ответ на: комментарий от anonymous

mencoder tv:// -noskip -tv driver=v4l2:input=$input:device=/dev/video1:\
alsa:adevice=hw.$adevice:amode=0:gain=5:immediatemode=0:\
width=720:height=576:norm=PAL:fps=25 \
-ovc lavc -lavcopts vbitrate=2000:vqmin=2:vqmax=10:autoaspect \
-vf softskip,kerndeint,scale=720:576,eq=-15:15 \
-oac mp3lame -lameopts vbr=3:br=32:mode=3 -o «$file».mpg

Примерно так.

hbars ★★★★★
() автор топика
Ответ на: комментарий от hbars

adevice=«2,0»
file=~/Видео/capture-`date +%F--%H-%M-%S`
input=1 # 0 - tv (для DC10 это Composite)
# 1 - Composite (для DC10 это S-Video)
# 2 - S-Video
Соответственно.

hbars ★★★★★
() автор топика
Ответ на: комментарий от hbars

А если раздельно? И потом склеить. Получится?

Раздельно или вместе — без разницы.

При частоте дискретизации звука 48000 Гц и частоте кадров 25 к/с на один кадр должно приходиться 1920 сэмплов звука. А фактически получается другое число.

cdslow ★★
()

Не жми на лету, если ты не являешься счастливым обладателем мейнфрейма! Пиши сначала несжатое, а затем уже сжимай.

Anon
()
Ответ на: комментарий от hbars

Дык, проверь, сколько минута занимает. У меня, например, на регистраторе 15 минут записи (1080p) == 1ГБ; час == 4ГБ. Соответственно, твои три часа == 12ГБ.

Правда, там какое-то дохлое сжатие используется. Но после пережатия в h264 без потери качества размеры файлов сокращаются на порядок-полтора (десятичных)!

Кстати, а почему бы тебе и правда не попробовать еще и сделать запись с минимальным сжатием (скажем, vbitrate=8000; vqmin=2:vqmax=10 выкидываем, звук не сжимаем или жмем на 320kbps).

Anon
()

Попробуй убрать -noskip

Rodegast ★★★★★
()

Попробуй прогнать файл через:

ffmpeg -i capture.mpg -af aresample=async=1 -vcodec copy -acodec libmp3lame -aq 3 sync.mpg

А ещё, у меня такое ощущение, что паковать в .mpg mp3 звук, тем более VBR — не самая лучшая идея.

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