Unixでwmvファイルを他のファイルフォーマットに変換したい
インストール
ソースをgit clone で取得してくる。
$ git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg Cloning into ffmpeg... remote: Counting objects: 192168, done. remote: Compressing objects: 100% (43840/43840), done. remote: Total 192168 (delta 150640), reused 188926 (delta 148049) Receiving objects: 100% (192168/192168), 49.63 MiB | 278 KiB/s, done. Resolving deltas: 100% (150640/150640), done.
$ ./configure --disable-yasm $ make $ sudo make install
使い方
基本的に-iオプションでインプットファイルを選択すれば使えるはずなのだが……。
$ ffmpeg -i input.wmv -acodec copy output.mp3 ffmpeg version N-35890-g83b4671, Copyright (c) 2000-2011 the FFmpeg developers built on Dec 17 2011 22:36:09 with gcc 4.1.2 20080704 (Red Hat 4.1.2-48) configuration: --disable-yasm libavutil 51. 32. 0 / 51. 32. 0 libavcodec 53. 46. 0 / 53. 46. 0 libavformat 53. 26. 0 / 53. 26. 0 libavdevice 53. 4. 0 / 53. 4. 0 libavfilter 2. 53. 0 / 2. 53. 0 libswscale 2. 1. 0 / 2. 1. 0 Input #0, asf, from 'input.wmv': Metadata: WMFSDKVersion : 12.0.7601.17514 WMFSDKNeeded : 0.0.0.0000 IsVBR : 0 Duration: 00:40:30.10, start: 0.000000, bitrate: 110 kb/s Stream #0:0: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 2 channels, s16, 96 kb/s Output #0, mp3, to 'output.mp3': Metadata: WMFSDKVersion : 12.0.7601.17514 WMFSDKNeeded : 0.0.0.0000 IsVBR : 0 TSSE : Lavf53.26.0 Stream #0:0: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 2 channels, 96 kb/s Stream mapping: Stream #0:0 -> #0:0 (copy) Press [q] to stop, [?] for help size= 28464kB time=00:40:30.10 bitrate= 96.0kbits/s video:0kB audio:28464kB global headers:0kB muxing overhead 0.001513%
エラーは出ていないが、再生ができない。多分copyだとダメなのかな…。
試しに他のフォーマットで変換してみたら、mp4だとうまくいった。
$ ffmpeg -i input.wmv output.mp4 ffmpeg version N-35890-g83b4671, Copyright (c) 2000-2011 the FFmpeg developers built on Dec 17 2011 22:36:09 with gcc 4.1.2 20080704 (Red Hat 4.1.2-48) configuration: --disable-yasm libavutil 51. 32. 0 / 51. 32. 0 libavcodec 53. 46. 0 / 53. 46. 0 libavformat 53. 26. 0 / 53. 26. 0 libavdevice 53. 4. 0 / 53. 4. 0 libavfilter 2. 53. 0 / 2. 53. 0 libswscale 2. 1. 0 / 2. 1. 0 Input #0, asf, from 'input.wmv': Metadata: WMFSDKVersion : 12.0.7601.17514 WMFSDKNeeded : 0.0.0.0000 IsVBR : 0 Duration: 00:40:30.10, start: 0.000000, bitrate: 110 kb/s Stream #0:0: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 2 channels, s16, 96 kb/s encoder 'aac' is experimental and might produce bad results. Add '-strict experimental' if you want to use it.
ん、-strict experimentalを付けないとだめらしい。
$ ffmpeg ーn -i input.wmv -strict experimental output.mp4 ffmpeg version N-35890-g83b4671, Copyright (c) 2000-2011 the FFmpeg developers built on Dec 17 2011 22:36:09 with gcc 4.1.2 20080704 (Red Hat 4.1.2-48) configuration: --disable-yasm libavutil 51. 32. 0 / 51. 32. 0 libavcodec 53. 46. 0 / 53. 46. 0 libavformat 53. 26. 0 / 53. 26. 0 libavdevice 53. 4. 0 / 53. 4. 0 libavfilter 2. 53. 0 / 2. 53. 0 libswscale 2. 1. 0 / 2. 1. 0 Input #0, asf, from 'input.wmv': Metadata: WMFSDKVersion : 12.0.7601.17514 WMFSDKNeeded : 0.0.0.0000 IsVBR : 0 Duration: 00:40:30.10, start: 0.000000, bitrate: 110 kb/s Stream #0:0: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 2 channels, s16, 96 kb/s Output #0, mp4, to 'output.mp4': Metadata: WMFSDKVersion : 12.0.7601.17514 WMFSDKNeeded : 0.0.0.0000 IsVBR : 0 encoder : Lavf53.26.0 Stream #0:0: Audio: aac (@[0][0][0] / 0x0040), 44100 Hz, 2 channels, s16, 128 kb/s Stream mapping: Stream #0:0 -> #0:0 (wmav2 -> aac) Press [q] to stop, [?] for help size= 37922kB time=00:40:30.10 bitrate= 127.8kbits/s video:0kB audio:37513kB global headers:0kB muxing overhead 1.091713%
これでできた。
オプション
-y | アウトプットファイルを上書きする |
---|---|
-n | アウトプットファイルを上書きしない |
-i | インプットファイル指定 |
-acodec | オーディオコーデック(copyでコピー) |
-strict | 厳密さ(very > strict > normal(デフォルト) > unofficial > experimental) |
うーんできることが多すぎて惑う。