LinuxForum.Fans
Тема

Mkv to avi

Автор: Peter 28 сообщений 12470 просмотров
#182962
Peter написал:

Однако мне всё равно непонятно, почему только что созданный файл
оказался попорченым.
Если уж это бывает, то, мб., лучше сначал по отдельности сохранить
звуковой и видеопоток, а потом их объединить?

Не нужно, только себе лишние проблеммы создатите. При "нормальном" кодировании, синхронизация производится автоматом; а вашем случае, сильно подозреваю результат тот же будет.

Peter написал:

И что делать с файлом субтитров? mkvextract позволяет его извлечь,
но ни mencoder, ни ffmpeg не предусматривают его подключения.

С помощью ffmpeg-а можно копировать и присоединять субтитры к медиа-файлу.

Если субтитры присутствуют в исходном файле:

text

ffmpeg -i in_file.mkv -vcodec libxvid -vb 2400k -acodec libfaac -ab 120k -scodec copy -slang rus out_file.mkv
-scodec copy - скопировать без изменений
-slang указать язык субтитров, необязательная(но желательная) опция.

С матрешкой (mkv) это работает нормально, насчет AVI не знаю (Поддерживает он вообще субтитры или нет).

Если файл субтитров отдельно:

text

ffmpeg -i in_file.mkv -i sub_file.srt -vcodec libxvid -vb 2400k -acodec libfaac -ab 120k -scodec copy -slang rus out_file.mkv
#183016
Newton написал:
[quote=Peter]
Правильно было бы с libfaac, тогда в выводе mplayer в терминал
аудиокодек указывается такой же, как в других avi.

Мало ли что там в других авишках используют. Самый беспроблемный путь для AVI - использовать mp3, constant bitrate. Это старая проблемма AVI-контейнера, в более новых версиях формата вроде как исправили; но неизвестно, поддерживает ли mencoder эти нововведения..?
[/quote]
Совершенно верно, как я уже говорил, при использовании twolame этого явления нет.
А точно ли с avi с mp3 будет проигрываться со звуком на плейере ?
Или это зависит от модели?

Peter написал:

Т.е. вопрос - в чём причина неприятности и как связать звуковй поток
с видеопотоком? Т.е. чтобы это не зависело от выбора аудиокодека.

Используйте другой контейнер, mkv например.
Почему именно AVI? Для DVD-Player-а? Если смотрите на компьютере, mkv гораздо лучший вариант.

Да, для DVD-player'а. Он далеко от меня и проверять, что получилось, не имею возможности.
Я туда отправил 4 диска с avi, из них два сделанные мной из mkv,
два из avi с другим кодеком - DX50 и несколько avi просто скачанных, говорят,
что нет звука на некоторых. Как я понял, на каких-то был, потом исчез. Например, нет
звука у Leon.1994.DC.RUS.BDRip.XviD.AC3.-HQ-ViDEO.avi
М.б., перед каждой попыткой выключать и включать плейер?



Вообще, странная проблемма. Не похоже это на рассинхронизацию, скорее какой-то баг вылез. Может быть, исходный файл битый. Или, mencoder не умеет толком с AAC работать..

Специально сейчас скачал с ютуба файл, сконвертировал:
text

ffmpeg -i Video.flv -f avi -vcodec libxvid -vb 1000k -acodec libfaac -ab 120k Video.avi

Все нормально воспроизводится mplayer-ом, прокрутка работает. Пробуйте конвертировать ffmpeg-ом.

Как я уже говорил, пробовал и ffmpeg, и с одним проходом и с двумя, не помогло -
прокрутка действует только на видео. Входной файл был в mkv, но для видео я задавал
постоянный bitrate.

Вообще в Интернете по поводу согласования аудио и видео потоков я читал, что это
лучше делает mencoder, что он определяет сдвиг одного относительно другого,
а ffmpeg нет. Там имелся в виду файл в целом.

Опция async тут не поможет ли? Я видел примеры.

Пётр.

#183111
Peter написал:

А точно ли с avi с mp3 будет проигрываться со звуком на плейере ?
Или это зависит от модели?

Да, должен. Два "любимых" аудио формата для ДВД - MP3 & AC-3
Вообще конечно, неплохо бы узнать модель плеера и что он поддерживает.

Peter написал:

Я туда отправил 4 диска с avi, из них два сделанные мной из mkv,
два из avi с другим кодеком - DX50 и несколько avi просто скачанных, говорят,
что нет звука на некоторых. Как я понял, на каких-то был, потом исчез.
Например, нет звука у Leon.1994.DC.RUS.BDRip.XviD.AC3.-HQ-ViDEO.avi
М.б., перед каждой попыткой выключать и включать плейер?

Так трудно что-то сказать, не имея полной информации о видео-файле; может, битрейт слишком высокий.
Включать и выключать..? Да по-моему достаточно вытащить-вставить диск. Попробывать конечно можно, делов на пять секунд.

Peter написал:

Вообще в Интернете по поводу согласования аудио и видео потоков я читал, что это лучше делает mencoder, что он определяет сдвиг одного относительно другого, а ffmpeg нет.

Да не похоже это на проблемму синхронизации, не в ту сторону копаете. Рассинхрон - это когда аудио от видео отстает, например.
А тут - нет прокрутки. Выглядит так, будто плеер "не знает", как по аудио-потоку перемещаться, потому и возвращается к началу.

Накопал набор советов для создания видео, совместимого с DVDPlayer -ом:

text

1. Разрешение видео должно быть не больше 720х576
2. Размер файла не больше 2 ГБ
3. Видео битрейт < 2000кб
4. Аудио - MP3 или AC3, CBR
5. НЕ использовать опции QPel  & GMC (Quarter Pixel, Global Motion Compensation)
6. Ширина и высота должны нацело делиться на 16

И, вот очень неплохое рускоязычное руководство по менкодеру:
http://www.mplayerhq.hu/DOCS/HTML/ru/encoding-guide.html

#183126

Очень благодарен за советы и информацию.
Плейер, как мне сказали по телефону, Thomson SDK600AR,
но я ещё не искал инструкцию к нему. Мне ещё раньше говорили,
что плейер должен проигрывать диски с avi и он это делает,
и какое-то меню выводит.

Оба mkv-файла имеют размер по горизонтали 1104 и 1200,
один из файлов у меня получился больше 4GB, но мне не
жаловались, что не проигрывается. И вот у mkv аудио-кодек - AAC,
а у скачанных avi - AC3, а я при создании avi указывал именно AAC,
так что, наверное, это моя ошибка. Попробую с mencoder и acodec=ac3.

Однако мне жаловались, что нет звука или исчез у скачанного avi с AC3.

Пётр.

#183165

Попробовал перестроить исходный avi с видеокодеком DX50 и аудио mp3 командой

text

mencoder input.avi -oac lavc -lavcopts acodec=ac3:abitrate=128 -ovc xvid -xvidencopts bitrate=2370 -of avi -o output.avi

в получившемся файле звук хрипит и при прокрутке звук идёт с начала файла.
Вариант с аудиокодеком twolame, т.е. mp3, как я уже говорил, работает нормально -
и прокрутка и звук. По-видимому, придётся остановиться на mp3.
Возможно, это какой-то bug mencoder'а, что avi нормально получается
только с mp3.

Пётр.

#183300

Я скачал документацию целиком, так оказалось проще
http://www.mplayerhq.hu/DOCS/HTML/ru/index.html
а как проще сделать из исходного файла несколько?
Указывать время начала и конца очередного участка для кодирования
или можно указать максимальный размер выходного файла?
Я ещё не разобрался.

Нашёл опции "-ss" и "-endpos", попробую.

Пётр.

#183844
Peter написал:

Попробовал перестроить исходный avi с видеокодеком DX50 и аудио mp3 командой
text

mencoder input.avi -oac lavc -lavcopts acodec=ac3:abitrate=128 -ovc xvid -xvidencopts bitrate=2370 -of avi -o output.avi

в получившемся файле звук хрипит и при прокрутке звук идёт с начала файла. Вариант с аудиокодеком twolame, т.е. mp3, как я уже говорил, работает нормально

В указанной коммандной строке аудио используется AC3, а не MP3. И еще, в качестве MP3-кодека желательно указать mp3lame:

text

mencoder input.avi -vf harddup -oac mp3lame -lameopts cbr 160 aq=2 -ovc xvid -xvidencopts bitrate=2370 -of avi -o output.avi

+ фильтр harddup - http://www.mplayerhq.hu/DOCS/HTML/ru/menc-feat-dvd-mpeg4.html#menc-feat-dvd-mpeg4-muxing-filter-issues

UPD: не, mp3lame не стоит использовать, попробывал сейчас, полоса прокрутки странно себя ведет. С twolame-ом все норм.

#183846
Peter написал:

а как проще сделать из исходного файла несколько?

Я не понял, о чем речь. Вырезать несколько кусков? В посте #8 пример для ffmpeg-a (как сделать подобное с mencoder-ом не знаю, надо ман смотреть)

Avidemux-ом можно, нагляднее даже. В опциях аудио & видео надо указать - копировать, на таймлинии выбрать начало фрагмента, затем нажать A на панели управления воспроизведением, - это будет начало.
Далее, прокрутить вперед, нажать B - это будет конец фрагмента.

Теперь можно сохранять: Файл - Сохранить - Сохранить Видео (Ctrl + s) - сохранит выделенный фрагмент видео.

Войдите или зарегистрируйтесь, чтобы ответить.