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
形式で取得するにはどうすればよいですか?
ビデオは「MPEG4 Visual」としてエンコードされています。これはmp42の別名です。残念ながら、このビデオはMPEG4-2標準がまだ実装されていない時期に開発されたソフトウェアを使用してエンコードされました。
一般的に使用できるようになるまでに、他のコーデック(x264など)に取って代わっています。
つまり、このコーデックのサポートは初歩的なものであり、せいぜい苦労しています。
そうは言っても、ffmpegが適切に読み取ることができる形式にファイルをいくらか修正できます。
Ffmpegが困難な部分はmajor_brand : isom
メタデータの一部。
これを回避するには、別のツールを使用します: MP4Box
次に、MP4Boxをインストールしたら、次のようなコマンドを実行します。
MP4Box -brand mp42 input.mp4
これにより、メタデータがmajor_brand : mp42
これが完了すると、ffmpegはそれを認識し、適切に変換できるようになります。
幸運を! :)