Невозможно преобразовать в x264 мкВ
Я хочу преобразовать mp4
подать в mkv
с форматом видео как x264
и аудио как libmp3lame
Mediainfo для файла дает:
General Complete name : file_in.mp4 Format : MPEG-4 Format profile : Base Media Codec ID : isom File size : 404 MiB Duration : 41mn 4s Overall bit rate : 1 375 Kbps Writing application : Lavf56.1.0 Video ID : 1 Format : MPEG-4 Visual Format profile : Advanced Simple@L5 Format settings, BVOP : Yes Format settings, QPel : No Format settings, GMC : No warppoints Format settings, Matrix : Default (H.263) Codec ID : 20 Duration : 40mn 55s Bit rate : 1 185 Kbps Width : 576 pixels Height : 432 pixels Display aspect ratio : 4:3 Frame rate mode : Constant Frame rate : 29.970 fps Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Compression mode : Lossy Bits/(Pixel*Frame) : 0.159 Stream size : 347 MiB (86%) Writing library : XviD 1.3.0.dev55 Audio ID : 2 Format : AC-3 Format/Info : Audio Coding 3 Mode extension : CM (complete main) Format settings, Endianness : Big Codec ID : ac-3 Duration : 41mn 4s Bit rate mode : Constant Bit rate : 192 Kbps Channel(s) : 2 channels Channel positions : Front: L R Sampling rate : 48.0 KHz Bit depth : 16 bits Compression mode : Lossy Stream size : 56.4 MiB (14%)
libx264-dev
а такжеlibav-tools
последние версии.Я попытался конвертировать с помощью следующей команды
avconv -i file_in.mp4 -c:v libx264 -acodec libmp3lame file_out.mkv
Вывод команды avconv был
avconv version 11.2-6:11.2-1, Copyright (c) 2000-2014 the Libav developers built on Jan 18 2015 05:12:33 with gcc 4.9.2 (Ubuntu 4.9.2-10ubuntu2) [mov,mp4,m4a,3gp,3g2,mj2 @ 0xa1d4c0] multiple edit list entries, a/v desync might occur, patch welcome Last message repeated 1 times [mov,mp4,m4a,3gp,3g2,mj2 @ 0xa1d4c0] max_analyze_duration 5000000 reached Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file_in.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf56.1.0 Duration: 00:41:04.99, start: 0.016000, bitrate: 1375 kb/s Stream #0.0(und): Video: mpeg4, yuv420p, 1184 kb/s, 30k tbn (default) Stream #0.1(und): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s (default) Output #0, matroska, to 'file_out.mkv': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf56.1.0 Stream #0.0(und): Audio: libmp3lame, 48000 Hz, stereo, fltp (default) Metadata: encoder : Lavc56.1.0 libmp3lame Stream mapping: Stream #0:1 -> #0:0 (ac3 (native) -> mp3 (libmp3lame)) size= 315kB time=19.75 bitrate= 130.8kbits/s . . . . size= 39227kB time=2464.97 bitrate= 130.4kbits/s video:0kB audio:38516kB other streams:0kB global headers:0kB muxing overhead: 1.845972%
По сути, только аудио копируется. Как я могу получить видео + аудио в mkv
формат?
1 ответ
Ваше видео закодировано как "MPEG4 Visual", это другое название для mp42. К сожалению, это видео было закодировано с использованием программного обеспечения, разработанного в то время, когда стандарт MPEG4-2 еще не был реализован.
К тому времени, когда он был готов для общего использования, его место заняли другие кодеки (а именно x264 и т. Д.).
Это означает, что поддержка этого кодека зачаточна, и в лучшем случае борется.
Тем не менее, вы можете несколько исправить файл в формате, который ffmpeg будет читать правильно.
Часть, с которой ffmpeg испытывает трудности, это major_brand : isom
часть метаданных.
Чтобы обойти это, мы используем другой инструмент: MP4Box
Затем, когда у вас установлен MP4Box, вы запускаете такую команду:
MP4Box -brand mp42 input.mp4
Это должно изменить метаданные для чтения major_brand : mp42
Как только это будет выполнено, ffmpeg должен его распознать и уметь правильно конвертировать.
Удачи!:)