Продолжительность аудио и видео не совпадают (Mencoder, DVD2H264 и странная аудиодорожка)

Вопросы, приемы и проблемы обработки видео

Модератор: Модераторы разделов

Аватара пользователя
Mifodix
Сообщения: 373
ОС: Fedora 17 x86_64

Re: Продолжительность аудио и видео не совпадают

Сообщение Mifodix »

alkesta писал(а):
14.08.2011 19:34
Незнаю как это будет в mencoder, но с ffmpeg я бы поступил так

Код: Выделить всё

ffmpeg -i источник

будет показана информация о файле, потоки будут пронумерованы
0:0 video
0:1 audio
и т.п.
Выбираешь поток через -map 0:x (где x - номер нужного потока) и делай что хочешь.

Вывод ffmpeg:

Код: Выделить всё

 Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x576 [PAR 64:45 DAR 16:9], 8000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0.1[0x81]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
    Stream #0.2[0x80]: Audio: ac3, 0 channels

Видишь дорожку с 2-мя каналами? А она есть! почти (с) :D
Тот же mediainfo прекрасно видит обе дорожки. Но суть не в этом. Mencoder тоже видит 2 дорожки, но почему-то ни одну не может извлечь, хотя проигрывает велколепно.
Спасибо сказали:

Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Продолжительность аудио и видео не совпадают

Сообщение sspphheerraa »

Mifodix писал(а):
14.08.2011 20:11
alkesta писал(а):
14.08.2011 19:34
Незнаю как это будет в mencoder, но с ffmpeg я бы поступил так

Код: Выделить всё

ffmpeg -i источник

будет показана информация о файле, потоки будут пронумерованы
0:0 video
0:1 audio
и т.п.
Выбираешь поток через -map 0:x (где x - номер нужного потока) и делай что хочешь.

Вывод ffmpeg:

Код: Выделить всё

 Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x576 [PAR 64:45 DAR 16:9], 8000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0.1[0x81]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
    Stream #0.2[0x80]: Audio: ac3, 0 channels

Видишь дорожку с 2-мя каналами? А она есть! почти (с) :D
Тот же mediainfo прекрасно видит обе дорожки. Но суть не в этом. Mencoder тоже видит 2 дорожки, но почему-то ни одну не может извлечь, хотя проигрывает велколепно.

Вторая дорожка странная... '0 channels' как-то не очень корректно звучит
Попробуйте извлечь ее с помощью Avidemux.
Mifodix писал(а):
14.08.2011 19:19
Скорее всего неверное решение дилетанта: с помощью mencoder закодировал бы с 1-ой дорожкой, потом бы извлёк 2-ую дорожку, закодировал бы её отдельно и добавил бы в контейнер matroska обе дорожки:)

Т.е. вторая дорожка уже бы копировалась к видео, так? - рискуете на ней получить сабжевый рассинхрон
alkesta писал(а):
14.08.2011 19:34
sspphheerraa
Дампишь dvd на диск, кодируешь 2 раза видео и аудио (нужные аудио потоки), а потом муксишь из 2-х файлов - одно видео и 2 аудио, как я выше приводил.

Хе-хе, а если дорожек не две, а три ...четыре :) извращение, к тому же, тоже не факт что не будет рассинхрона

На doom9.org обсуждали сабж, и единственным решением (на данный момент) признали - размуксивание MPEG2 файла на составляющие потоки с помощью projectx. Далее мукс через mplex. Ссылки я приводил выше.

В общем, если кто пользуется другим способом и проблем не наблюдается - слава Богу!
Просто метод projectx+mplex работает с любыми MPEG2 (включая DVB и IPTV), причем с исправленным, таким образом, файлом уже можно делать все, что угодно... копировать, кодировать... вместе, порознь... рассинхрона не будет :) проверено лично не на одном десятке "проблемных" mpeg2 файлах.

Удачи!
Sspphheerraa
Спасибо сказали:

Аватара пользователя
Mifodix
Сообщения: 373
ОС: Fedora 17 x86_64

Re: Продолжительность аудио и видео не совпадают

Сообщение Mifodix »

sspphheerraa писал(а):
14.08.2011 20:54
Вторая дорожка странная... '0 channels' как-то не очень корректно звучит
Попробуйте извлечь ее с помощью Avidemux.

Avidemux видит только 6-канальную дорожку...Видимо дело плохо. Ну да ладно, это 30-секундная заставка, тут можно и без звука:)
Добавлено:
Вырезал 6-канальную дорожку при помощи ffmpeg, закодировал в 2-канальный AAC вместе с видео тем же mencoder, но указал брать аудио из внешнего файла -audiofile file.wav. Теперь всё шикарно закодировалось и склеилось в один файл. Таким образом, все проблемы решены:)
На doom9.org обсуждали сабж, и единственным решением (на данный момент) признали - размуксивание MPEG2 файла на составляющие потоки с помощью projectx. Далее мукс через mplex. Ссылки я приводил выше.

В общем, если кто пользуется другим способом и проблем не наблюдается - слава Богу!
Просто метод projectx+mplex работает с любыми MPEG2 (включая DVB и IPTV), причем с исправленным, таким образом, файлом уже можно делать все, что угодно... копировать, кодировать... вместе, порознь... рассинхрона не будет проверено лично не на одном десятке "проблемных" mpeg2 файлах.

Спасибо за информацию! Если будет время и возможность, попробую поэкспериментировать с projectx и mplex.
Спасибо сказали:

Аватара пользователя
alkesta
Сообщения: 345
ОС: Fedora

Re: Продолжительность аудио и видео не совпадают

Сообщение alkesta »

Mifodix писал(а):
14.08.2011 22:49
это 30-секундная заставка, тут можно и без звука:)
Добавлено:
Вырезал 6-канальную дорожку при помощи ffmpeg, закодировал в 2-канальный AAC вместе с видео тем же mencoder, но указал брать аудио из внешнего файла -audiofile file.wav. Теперь всё шикарно закодировалось и склеилось в один файл.


А откуда взялся file.wav?
Ты еще и заставки и рекламу кодируешь? зачем?

Я обычно таким образом делаю рип DVD:
1. выбираю только VOB с фильмом (все заставки, реклама, доп материалы - лесом)
2. cat Movie1. VOB Movie2. VOB .. > all.VOB
3. кодирую видео-поток с -acodec copy
4. с помощью mrvmerge делаю готовый mkv-файл с аудио-потоками из VOB и видео-потоком из 3-го пункта. (не вижу особой необходимости пережимать звук)
5. Profit
Рассинхронов и прочих проблем не наблюдалось.
Спасибо сказали:

Аватара пользователя
Mifodix
Сообщения: 373
ОС: Fedora 17 x86_64

Re: Продолжительность аудио и видео не совпадают

Сообщение Mifodix »

alkesta писал(а):
15.08.2011 08:49
Mifodix писал(а):
14.08.2011 22:49
это 30-секундная заставка, тут можно и без звука:)
Добавлено:
Вырезал 6-канальную дорожку при помощи ffmpeg, закодировал в 2-канальный AAC вместе с видео тем же mencoder, но указал брать аудио из внешнего файла -audiofile file.wav. Теперь всё шикарно закодировалось и склеилось в один файл.


А откуда взялся file.wav?
Ты еще и заставки и рекламу кодируешь? зачем?

Я обычно таким образом делаю рип DVD:
1. выбираю только VOB с фильмом (все заставки, реклама, доп материалы - лесом)
2. cat Movie1. VOB Movie2. VOB .. > all.VOB
3. кодирую видео-поток с -acodec copy
4. с помощью mrvmerge делаю готовый mkv-файл с аудио-потоками из VOB и видео-потоком из 3-го пункта. (не вижу особой необходимости пережимать звук)
5. Profit
Рассинхронов и прочих проблем не наблюдалось.

file.wav - это как раз ивлечённая ffmpeg дорожка с 6 каналами:)
Это диск с доп. материалами как раз, тут надо впихнуть заставку, а то кажется, что фильм начинается как будто с середины:)
Я тоже раньше кодировал всегда mencoder -oaс copy, но вот столкнулся с сабжем и теперь буду делать по-другому:D
Спасибо сказали:

Аватара пользователя
Mifodix
Сообщения: 373
ОС: Fedora 17 x86_64

Re: Продолжительность аудио и видео не совпадают

Сообщение Mifodix »

sspphheerraa писал(а):
14.08.2011 20:54
На doom9.org обсуждали сабж, и единственным решением (на данный момент) признали - размуксивание MPEG2 файла на составляющие потоки с помощью projectx. Далее мукс через mplex. Ссылки я приводил выше.

В общем, если кто пользуется другим способом и проблем не наблюдается - слава Богу!
Просто метод projectx+mplex работает с любыми MPEG2 (включая DVB и IPTV), причем с исправленным, таким образом, файлом уже можно делать все, что угодно... копировать, кодировать... вместе, порознь... рассинхрона не будет :) проверено лично не на одном десятке "проблемных" mpeg2 файлах.

Удачи!


Решил новую тему не открывать. "Размуксил" mpeg на составляющие с помощью projectx - всё хорошо. Пытаюсь собрать через mplex - всё плохо:)

Код: Выделить всё

mifodix@linux-yusg:~> mplex -f 8 ashes.m2v ashes.ac3 ashes-02.ac3 -o ashes_show.mpeg
   INFO: [mplex] mplex version 1.9.0 (2.2.7 $Date: 2006/02/01 22:23:01 $)
   INFO: [mplex] File ashes.m2v looks like an MPEG Video stream.
   INFO: [mplex] File ashes.ac3 looks like an AC3 Audio stream.
   INFO: [mplex] File ashes-02.ac3 looks like an AC3 Audio stream.
   INFO: [mplex] Video stream 0: profile 8 selected - ignoring non-standard options!
   INFO: [mplex] Found 2 audio streams and 1 video streams
   INFO: [mplex] Selecting dvdauthor DVD output profile
   INFO: [mplex] Multiplexing video program stream!
   INFO: [mplex] Scanning for header info: Video stream e0 (ashes.m2v)
   INFO: [mplex] VIDEO STREAM: e0
   INFO: [mplex] Frame width     : 720
   INFO: [mplex] Frame height    : 480
   INFO: [mplex] Aspect ratio    : 16:9 display
   INFO: [mplex] Picture rate    : 29.970 frames/sec
   INFO: [mplex] Bit rate        : 9000000 bits/sec
   INFO: [mplex] Vbv buffer size : 229376 bytes
   INFO: [mplex] CSPF            : 0
   INFO: [mplex] Scanning for header info: AC3 Audio stream 00 (ashes.ac3)
   INFO: [mplex] AC3 frame size = 768
   INFO: [mplex] AC3 AUDIO STREAM:
   INFO: [mplex] Bit rate       :    24576 bytes/sec (192 kbit/sec)
   INFO: [mplex] Frequency      :     48000 Hz
   INFO: [mplex] Scanning for header info: AC3 Audio stream 01 (ashes-02.ac3)
   INFO: [mplex] AC3 frame size = 1792
   INFO: [mplex] AC3 AUDIO STREAM:
   INFO: [mplex] Bit rate       :    57344 bytes/sec (448 kbit/sec)
   INFO: [mplex] Frequency      :     48000 Hz
   INFO: [mplex] SYSTEMS/PROGRAM stream:
   INFO: [mplex] rough-guess multiplexed stream data rate    : 9854496
   INFO: [mplex] target data-rate specified               : 10080000
   INFO: [mplex] Setting specified specified data rate: 10080000
   INFO: [mplex] Run-in delay = 9009 Video delay = 9009 Audio delay = 18018
   INFO: [mplex] New sequence commences...
   INFO: [mplex] Video e0: buf=      0 frame=000000 sector=00000000
   INFO: [mplex] Audio bd: buf=      0 frame=000000 sector=00000000
   INFO: [mplex] Audio bd: buf=      0 frame=000000 sector=00000000
++ WARN: [mplex] Stream e0: data will arrive too late sent(SCR)=1571693 required(DTS)=9009
++ WARN: [mplex] Video e0: buf= 222074 frame=000528 sector=00007648
++ WARN: [mplex] Audio bd: buf=  14685 frame=000559 sector=00000213
++ WARN: [mplex] Audio bd: buf=  16125 frame=000548 sector=00000488
   INFO: [mplex] STREAM bd completed
   INFO: [mplex] Scanned to end AU 90584
   INFO: [mplex] STREAM e0 completed
   INFO: [mplex] STREAM bd completed
   INFO: [mplex] Multiplex completion at SCR=336805449.
   INFO: [mplex] Video e0: completed
   INFO: [mplex] Audio bd: completed
   INFO: [mplex] Audio bd: completed
   INFO: [mplex] VIDEO_STATISTICS: e0
   INFO: [mplex] Video Stream length:  3274627560 bytes
   INFO: [mplex] Sequence headers:     6159
   INFO: [mplex] Sequence ends   :        1
   INFO: [mplex] No. Pictures    :    90585
   INFO: [mplex] No. Groups      :     6159
   INFO: [mplex] No. I Frames    :     6159 avg. size 79973 bytes
   INFO: [mplex] No. P Frames    :    24036 avg. size 46039 bytes
   INFO: [mplex] No. B Frames    :    60390 avg. size 27743 bytes
   INFO: [mplex] Average bit-rate :  7000000 bits/sec
   INFO: [mplex] Peak bit-rate    : 12294400  bits/sec
   INFO: [mplex] BUFFERING min 15 Buf max 212048
   INFO: [mplex] AUDIO_STATISTICS: bd
   INFO: [mplex] Audio stream length 89816832 bytes.
   INFO: [mplex] Frames         :   116949
   INFO: [mplex] BUFFERING min 67 Buf max 7747
   INFO: [mplex] AUDIO_STATISTICS: bd
   INFO: [mplex] Audio stream length 209572608 bytes.
   INFO: [mplex] Frames         :   116949
   INFO: [mplex] BUFFERING min 35 Buf max 8547
**ERROR: [mplex] MUX STATUS: Frame data under-runs detected!

У меня есть предположение, что дело в пиковом битрейте около 12 Мегаби/сек. Как быть?
Спасибо сказали:

Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Продолжительность аудио и видео не совпадают

Сообщение sspphheerraa »

Mifodix писал(а):
03.09.2011 18:44
У меня есть предположение, что дело в пиковом битрейте около 12 Мегаби/сек. Как быть?

Обычно подобная ошибка возникает когда видео зажато не по стандарту,
попробуй поиграться с выходным форматом, напр. -f 9 (см. man mplex)
Sspphheerraa
Спасибо сказали:

Аватара пользователя
Mifodix
Сообщения: 373
ОС: Fedora 17 x86_64

Re: Продолжительность аудио и видео не совпадают

Сообщение Mifodix »

sspphheerraa писал(а):
04.09.2011 13:49
Mifodix писал(а):
03.09.2011 18:44
У меня есть предположение, что дело в пиковом битрейте около 12 Мегаби/сек. Как быть?

Обычно подобная ошибка возникает когда видео зажато не по стандарту,
попробуй поиграться с выходным форматом, напр. -f 9 (см. man mplex)

-f 9 уже пробовал - тоже самое. Даже пиковый битрейт указывал через -r, тогда mplex вообще, видимо, уходит в бесконечный цикл (проц грузит, размер выходного файла не растёт).
Спасибо сказали: