私はIPカメラで作業しています。カメラからJpegフレームとオーディオデータ(PCM)を取得しました。jpegフレームで.avi、.mp4ファイルを作成するには?
ここでは、上記のデータから.aviまたは.mp4形式でビデオファイル(オーディオとビデオの両方)を作成したいと考えています。
私は検索し、ffmpegライブラリがそれを行うことができることを知っていました。しかし、私はffmpegを使ってこれを行う方法を知らない。
サンプルコードやffmpegの機能を教えていただけますか?
私はIPカメラで作業しています。カメラからJpegフレームとオーディオデータ(PCM)を取得しました。jpegフレームで.avi、.mp4ファイルを作成するには?
ここでは、上記のデータから.aviまたは.mp4形式でビデオファイル(オーディオとビデオの両方)を作成したいと考えています。
私は検索し、ffmpegライブラリがそれを行うことができることを知っていました。しかし、私はffmpegを使ってこれを行う方法を知らない。
サンプルコードやffmpegの機能を教えていただけますか?
これを行うための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
。ここ
可能な問題があります:あなたは、事前に慎重に、ご希望のフレームレートを計算する場合を除き
grep
のマジックを使用して、オーディオ(またはビデオ)の長さを取得できるはずです。それでも、長いクリップでは同期が問題になることがあります。%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.
使用 '' MFでmencoder':// 'ソース。 –