Здравствуйте!
Пожалуйста, подскажите команду перекодирования mkv -> avi
с помощью mencoder или ffmpeg. Я сейчас пробую mencoder,
но пока не получается даже сформировать команду.
С ffmpeg тоже сразу не получлось.
И ещё желательно avi с видеокодеком DX50 перекодировать
с кодеком xvid.
Пётр.
Mkv to avi
Поиск научитесь использовать. И ценить время других.
http://linuxforum.ru/viewtopic.php?id=2924
Уже искал, но того чего мне надо, не нашёл. Конкретно сейчас не получается
задать требуемую опцию для mencoder.
Пётр.
если перекодировка не нужна, то проще воспользоваться avimerge из transcode
если перекодировка не нужна, то проще воспользоваться avimerge из transcode
Там нужна именно перекодировка, т.к. в mkv - H264, а для avi надо, например, xvid.
Вчера я нашёл в Интернете несколько вариантов с mencoder, ссегодня попробую.
Когда я пытался до этого, у меня неправильно выбиралась одна опция,
я это подозревал, но хотел найти полноценное решение.
Пётр.
А вот ещё есть вопрос по mencoder: mkv с кодеком H264 имеет
размер кадра 1200x720, 1104x624 и mplayer не сообщает, какой
там bps, пишет нули, а для avi сообщает.
Для mencoder для xvid какой надо указать bitrate?
И что такое fixed_quant, в одном примере вместо bitrate
задано fixed_quant=4, пределы - 1-31.
Нашёл, что чем больше, тем хуже, т.е. больше какого не следует задавать?
Пётр.
Пожалуйста, подскажите команду перекодирования mkv -> avi
с помощью mencoder или ffmpeg.
И ещё желательно avi с видеокодеком DX50 перекодировать
с кодеком xvid.
Для ffmpeg это будет выглядеть так:
ffmpeg -i in_file.mkv -vcodec mpeg4 -vb 1600k -acodec libmp3lame -ab 160k out_file.avi
ffmpeg -i in_file.avi -vcodec libxvid -vb 1600k -acodec libmp3lame -ab 160k out_file.avi
Входной формат обычно определяется автоматом, указывать нужно только параметры для видео-файла на выходе.
Для mencoder для xvid какой надо указать bitrate?
Это не такой вопрос, на который можно запросто ответить.
Например, предел битрейт-а может ограничить устройство, на котором этот файл будете смотреть. (Встречал в сети рекомендации не ставить битрейт больше 2000k для просмотра на DVD-player-ax.)
Для начальной оценки требуемого битрейта, можно воспользоваться соотношением:
bits/(pixel*frame) = k, где k > 0.15
Взяв для примера k=0.25 и видео 1200х720 24fps:
(1200*720*25)*0.25 ~ 5200к
И что такое fixed_quant, в одном примере вместо bitrate
задано fixed_quant=4, пределы - 1-31.
Нашёл, что чем больше, тем хуже, т.е. больше какого не следует задавать?
q < 10 (даже может быть q<8). Рекомендуемый вариант находится в диапазоне: q = 3...6.
И опять же, наиболее подходящий quantizer сильно зависит от содержания видео, и лучший способ определить его - сделать несколько семплов видео, и сравнить их между собой. Тоже самое относится и к битрейту.
Вырезать кусок видео-файла можно так:
ffmpeg -i input_file -t 120 -ss 600 -vcodec copy -acodec copy output_file
-t длина семпла, в секундах
-ss смещение в видео-файле, в секундах
для указанных опций - вырежется 2-х минутный ролик начиная с 10-й минуты видео. Смещение можно указать и так:
-ss 01:10:24 (1 час 10 мин 24 сек)
copy - скопирует указаный поток без изменений (video,audio)
Благодарю за пример, я уже сделал с помощью mencoder.
На глаз различие при близких значениях fixed_quant не будет заметно.
Я задал 2, при этом исходный mkv имел размер 1659M, а получившийся
avi оказался размером 3957M, переделывать было уже некогда.
Я бы предпочёл указать bitrate, но для mkv mplayer его не сообщал,
а как его оценить, исходя из размера кадра и выбранного кодека, я не знаю.
Пётр.
Обнаружилась неприятность - при проигрывании в mplayer перекодированного
файла, полученного как из mkv, так и из avi с другим видеокодеком, при
попытке продвинуться по файлу с помощью клавиш звук начинает идти
с начала файла.
Сейчас я пытаюсь это проверять на перекодированном avi, т.к. там
исходный файл меньше, чем mkv и результа получается быстрее.
Пробовал "-oac faac", без параметров,
-oac lavc -lavcopts acodec=libfaac
-oac lavc -lavcopts acodec=ac3 - звук сильно хрипит,
Попробовал "-oac twolame -twolameopts br=160" - вот в этом варианте
неприятности нет, звук следует за изображением при перемещении
по файлу. В исходном avi аудиокодек был mp3,
на mkv ещё не экспериментировал.
Правильно было бы с libfaac, тогда в выводе mplayer в терминал
аудиокодек указывается такой же, как в других avi.
Т.е. вопрос - в чём причина неприятности и как связать звуковй поток
с видеопотоком? Т.е. чтобы это не зависело от выбора аудиокодека.
Или, более конкретно - как добиться, чтобы при
-oac lavc -lavcopts acodec=libfaac
звуковой поток не отделялся от видео при перемещении по файлу?
Пётр.
звуковой поток не отделялся от видео при перемещении по файлу?
пересоздать индекс не ???
[console]mencoder input.avi -forceidx -oac copy -ovc copy -o output.avi
[/console]
Благодарю за совет, попробую.
Я multimedia никогда не занимался и mencoder раньше никогда
не запускал, так что и понятия не имел о -forceidx.
Однако мне всё равно непонятно, почему только что созданный файл
оказался попорченым.
Если уж это бывает, то, мб., лучше сначал по отдельности сохранить
звуковой и видеопоток, а потом их объединить?
И когда в этом случае надёжнее делать перекодировку - до сохранения
или после?
Пётр.
если вы никогда не занимались этим стоит для начала крепко покурить эту тему , а уж потом лезть в консоль , все опции и фичи описаны в манах достаточно подробно , но .. если вы не знаете (к примеру) что такое bitrate как вы будете применять значения к опциям ???
Для этих целей написано 100500 гуёв , да не все они прямые и понятные , но есть вполне себе профессионально рубленные и достаточно функциональные , как они работают можно подсмотреть в консоли(запускаем командой из терминала и смотрим что пишет программа на то или иное ваше действие) , для ваших целей за глаза хватит функционала того же avidemux ...
Чтобы чему-то научиться, надо в любом случае начать это делать.
Для меня трудность не в mencoder, а в том, что я не знаю
теоретических основ multimedia, т.к. никогда этим не занимался.
Читал что-то о принципах архивирования, в т.ч. аудио и видео,
но формата самих файлов не знаю.
Вот краткое описание mencoder:
http://www.opennet.ru/tips/info/2174.shtml
Так можно ли сразу построить выходной файл правильно?
Пётр.
[quote=Peter]звуковой поток не отделялся от видео при перемещении по файлу?
пересоздать индекс не ???
[console]mencoder input.avi -forceidx -oac copy -ovc copy -o output.avi
[/console][/quote]
К сожалению, не помогло, после выполнения этой команды явление
осталось - при перемещении по файлы звук начинает идти сначала.
При перестроении всё время бежало сообщение "Skipping frame",
исходный avi имел размер 2357MB, а перестроенный - 2118MB.
Возможно, попробую по отдельности сохранить звук и видео,
а потом объединить.
Пётр.
[quote=gramozeka][quote=Peter]звуковой поток не отделялся от видео при перемещении по файлу?
пересоздать индекс не ???
[console]mencoder input.avi -forceidx -oac copy -ovc copy -o output.avi
[/console][/quote]
К сожалению, не помогло, после выполнения этой команды явление
осталось - при перемещении по файлу звук начинает идти сначала.
При перестроении всё время бежало сообщение "Skipping frame",
исходный avi имел размер 2357MB, а перестроенный - 2118MB.
Возможно, попробую по отдельности сохранить звук и видео,
а потом объединить.
Пётр.[/quote]
не понятно почему не использовать ffmpeg или Transcode , так же не понятно почему не использовать (хотя бы на первых порах) avidemux , то что вы пытаетесь сделать не понимая сути процесса и приводит к пустопорожним пляскам на ровном месте .
Если со стороны - то это выглядит примерно так :
Показать
не для злорадства , но таки читайте гугль wink
вот тыц (правда потребуется aMule) или у офтопика да хоть вот тыц, может что-то полезное для себя и найдете ..
Я сначал и спросил, чем лучше воспользоваться, mencoder или ffmpeg,
а transcode, как мне тогда показалось из его man, скорее предназначен
для другого случая, чем мой.
Благодарю за ссылки, но Вы всё же не ответили на вопрос -
почему так получилось и что делать. Примеры использования mencoder
я нашёл в Интернете, я не помню, чтобы там рассматривалась такая ситуация.
И что делать с файлом субтитров? mkvextract позволяет его извлечь,
но ни mencoder, ни ffmpeg не предусматривают его подключения.
Пётр.
А вариант с объединением отдельно сохранённых
аудио и видео потоков с помощью ffmpeg не помог. Сейчас запустил ffmpeg
с исходным файлом, но подозреваю, что будет то же самое.
У ffmpeg много полезных опций, есть и связанные с синхронизацией,
но ffmpeg я тоже до сих пор не использовал.
Вы хотя бы можете предположить, какова причина того, что звук
может отделяться от видеопотока?
Пётр.
Правильно было бы с libfaac, тогда в выводе mplayer в терминал
аудиокодек указывается такой же, как в других avi.
Мало ли что там в других авишках используют. Самый беспроблемный путь для AVI - использовать mp3, constant bitrate. Это старая проблемма AVI-контейнера, в более новых версиях формата вроде как исправили; но неизвестно, поддерживает ли mencoder эти нововведения..?
Т.е. вопрос - в чём причина неприятности и как связать звуковй поток
с видеопотоком? Т.е. чтобы это не зависело от выбора аудиокодека.
Используйте другой контейнер, mkv например.
Почему именно AVI? Для DVD-Player-а? Если смотрите на компьютере, mkv гораздо лучший вариант.
Вообще, странная проблемма. Не похоже это на рассинхронизацию, скорее какой-то баг вылез. Может быть, исходный файл битый. Или, mencoder не умеет толком с AAC работать..
Специально сейчас скачал с ютуба файл, сконвертировал:
ffmpeg -i Video.flv -f avi -vcodec libxvid -vb 1000k -acodec libfaac -ab 120k Video.avi
Все нормально воспроизводится mplayer-ом, прокрутка работает. Пробуйте конвертировать ffmpeg-ом.