2012-03-25 24 views
1

私はIPカメラで作業しています。カメラからJpegフレームとオーディオデータ(PCM)を取得しました。jpegフレームで.avi、.mp4ファイルを作成するには?

ここでは、上記のデータから.aviまたは.mp4形式でビデオファイル(オーディオとビデオの両方)を作成したいと考えています。

私は検索し、ffmpegライブラリがそれを行うことができることを知っていました。しかし、私はffmpegを使ってこれを行う方法を知らない。

サンプルコードやffmpegの機能を教えていただけますか?

+0

使用 '' MFでmencoder':// 'ソース。 –

答えて

1

これを行うためのC++アプリケーションを作成することが目的ならば、この回答を無視してください。今後の参考にしておきます。そうでない場合、bashでこれを行う方法は次のとおりです。

まず、画像がffmpegで扱いやすい素敵なフォーマットになっていることを確認します。画像を別のディレクトリにコピーすることができます。

mkdir tmp 
x=1; for i in *jpg; do counter=$(printf %03d $x); cp "$i" tmp/img"$counter".jpg; x=$(($x+1)); done 

オーディオデータをtmpディレクトリにコピーし、ビデオをエンコードします。のは、あなたのカメラは、画像ごとに10秒かかったとしましょう:-r 0.1は、1つのフレームごとに10秒である0.1のフレームレートを示し

cd tmp 
ffmpeg -i audio.wav -f image2 -i img%03d.jpg -vcodec msmpeg4v2 -r 0.1 -intra out.avi 

。ここ

可能な問題があります:あなたは、事前に慎重に、ご希望のフレームレートを計算する場合を除き

  • お使いのオーディオ/ビデオが同期して少し行くかもしれません。 ffmpegといくつかのgrepのマジックを使用して、オーディオ(またはビデオ)の長さを取得できるはずです。それでも、長いクリップでは同期が問題になることがあります。
  • あなたは999枚の以上の画像を持っている場合%03dフォーマットは、ストリームの長いから、その長さを継承するインデックス
  • ビデオの所望の長さに3を変更することを確認し、十分にあなたができることはありません-tスイッチを使用して、それを制限:

    -t durationからRestrict the transcoded/captured video sequence to the duration specified in seconds. "hh:mm:ss[.xxx]" syntax is also supported.

関連する問題