ffmpegで静止画付きの音声ファイルを作る方法

やりたいことは

音声データ.wavに静止画.jpgを付けて動画.flvファイルを作成すること。

 

ググると次のようなコマンド例がでてきた。

 ffmpeg -loop_input -shortest -i gazo.jpg -i onsei.mp3 -vcodec flv -acodec copy -r 1 douga.flv

 

-loop_input -shortest で jpg画像を音声が終るまでループさせるのがミソの様だ。 -shortestがないと延々とエンコが続いてしまう... あと、静止画なのでフレームレートは最低限にするとファイルが小さくできる。

(http://fixedpoint.jp/ffmpeg/ffmpeg-doc.html)

 

とのこと。

 

0 最終的に実行したコマンド

ffmpeg -loop_input -shortest -i image.jpg -i audio.wav -vcodec flv -acodec copy -y -r 1 movie.flv

 
 
以下、コマンドの説明
 
1 一般的な構文

ffmpeg [[infile options][‘-i’ infile]]... {[outfile options] outfile}...

 
2 オプション
 
2.1 静止画を音声が終わるまでループさせる
 
上の参考サイトのとおり
-loop_input -shortest
 
 
2.2 入力ファイル名(パス)の指定
‘-i filename’

 上の参考サイトであれば、静止画ファイルと音声ファイルの2つをinfileとして入力してる。

-i gazo.jpg

-i onsei.mp3

 

2.3 コーデックの方法

 -acodec copy 

 

オーディオのコーデックは、

今回は音声ファイルをありのままコピーしたいので -acodec copy を指定。

-acodec codec

オーディオのコーデックを codec に強制します。未加工のコーデックデータ をありのままコピーするには copy という特別な値を使ってください。 値を使ってください。

http://fixedpoint.jp/ffmpeg/ffmpeg-doc.html

 

ビデオ(ここでは静止画)のコーデックは

-vcodec flvを指定。

 

2.4 フレームレートの設定

‘-r fps
 
上の参考サイトのとおり、 -r 1 とする。
 
フレームレート(Hz での値、分数または省略形)を設定する(既定値は25)。
  • フレームレートは、動画において、単位時間あたりいくつフレーム (映像)・コマのこと)が処理されるかという値。
  • 通常、1秒あたりの数値で表し、fps(Frames Per Second、フレームス パー セコンド)という単位で表す。

 

 2.5 出力ファイルを上書きする設定

‘-y’
 

 以上。