[Unix][備忘録]Unixでwmvファイルを他のファイルフォーマットに変換したい
前回までのあらすじ
ダウンロードした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)|
うーんできることが多すぎて惑う。