Hatena::ブログ(Diary)

kk_Atakaの日記 RSSフィード

2011-12-17

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)

うーんできることが多すぎて惑う。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証