回答:
Windowsを使用している場合は、Windowsムービーメーカーでも実行できます。手順が必要な場合は、コメントを残してください
FFmpegの場合はこれを使用します
ffmpeg -loop_input -vframes 14490 -i imagine.jpg -i audio.mp3 -y -r 30
-b 2500k -acodec ac3 -ab 384k -vcodec mpeg4 result.mp4
vframes 14490は、audio.mp3ファイル全体の連続した画像を取得するためにループする必要があるフレームの数です。
例:8分3秒の場合((8m x 60s + 3s)x 30fps = 14490 vf)
ここからリソース
ここで提案されている方法よりもはるかに簡単な方法があり、フレーム数の計算や個々のファイルの長さの入力を必要としません(特にバッチ処理の場合)。ffmpegの最近のバージョンでは-shortest
、最短ストリームが終了するとエンコードを停止するオプションを使用できます。この場合、input.mp3(画像は永久にループするため、画像の長さは無限です):
ffmpeg -i input.mp3 -f image2 -loop 1 -r 2 -i input.jpg \
-shortest -c:a copy -c:v libx264 -crf 23 -preset veryfast output.mp4
これは画像/ビデオに毎秒2フレームを使用しますが、これは問題ありませんが、必要に応じてより標準的な25に設定できます。
スバンキはそれをほぼ正しかった。動作するコマンドラインは次のとおりです。
ffmpeg -y -loop 1 -i image.jpg -i audio.mp3 -r 30 -b:v 2500k -vframes 14490 -acodec libvo_aacenc -ab 160k result.mp4
プロンプトなしで出力ファイルを上書きする
オプション '-loop_input'は非推奨の使用-loop 1です。ffmpegのドキュメントを参照してください。
入力ファイル
1秒
あたりのフレーム数は、次のように表すこともできます。-r 30000/1001は、29.97nnnのfpsを示します。
ビデオビットレート; 数値が大きいほど品質が高くなり、ファイルサイズが大きくなります。
上記で説明したように; オーディオファイルの合計時間を秒単位で取得します(たとえば、00:02:41(2分41秒)は、合計161秒(2 x 60)+ 41)です。次に、合計秒数に-rで指定した1秒あたりのフレーム数を掛けます(例:161 x 30 = 4830)。
-vframesは、-t 161に置き換えることができます(-t持続時間レコードまたはオーディオ/ビデオの「持続時間」秒のトランスコード)
作成するファイルのタイプに適したオーディオコーデックを使用してください。.mp4の場合は、AAC形式である必要があります。コーデックlibvo_aacencは、私のWindows 7システムに適したエンコードコーデックでした。
オーディオビットレート
これは出力ファイルの名前です。システムに適した任意のファイル名を使用できます。拡張機能は、-vcodecを使用してビデオコーデックを指定しない場合、ffmpegが適切なビデオコーデックを決定するのに役立ちます。
ディレクトリ内の$ AUDIO拡張子のすべてのファイルを、folder.jpg画像が埋め込まれたディレクトリ内の10FPS mp4ビデオファイルに自動的にエンコードする単純なbash / cygwinスクリプト。
YouTubeのアップロードに便利です;)
AUDIO=m4a;
$'\n'; for a in `ls -1 *.$AUDIO `; do ffmpeg -i $a &2> $a.info ; done;
cat '' > do.sh
IFS=$'\n';
for a in `ls -1 *.$AUDIO`; do D=`grep Duration $a.info | cut -d',' -f1 | cut -d' ' -f4 | cut -d'.' -f1 | head -n1 `; S=$(( $( echo $D | cut -d':' -f2 ) * 60 + 1 + ` echo $D | cut -d':' -f3 ` )) ; echo ffmpeg -loop_input -vframes $(( $S * 10 )) -i folder.jpg -i \"$a\" -y -r 10 -b 2500k -ab 384k -vcodec mpeg4 \"$a.mp4\" >> do.sh; done;
split -l5 do.sh
xa* &
VirtualDubをダウンロードして、次の手順を実行します。
通常のビデオファイルを開くように画像を開きます。
秒単位でオーディオの継続時間を計算し、最も近い整数秒に切り上げます(たとえば、78.34秒は79秒になります)。この値は今後xと呼ばれます。
「ビデオ>フレームレート」に移動し、「フレームレート(fps)に変更」を選択して、値として「1 / x」を入力します。さらに、結果のファイルに25 fpsなどの通常のフレームレートを設定する場合は、[fpsに変換]を選択し、そこに必要なフレームレートを入力します。
「ビデオ>圧縮」を選択し、好みのフレーバーを選択します。サイズ変更フィルターを使用して画像のサイズを調整する必要がある場合があります。
「オーディオ>他のファイルからのオーディオ」に移動し、そこでオーディオを選択します。必要に応じて、オーディオの圧縮を選択します。
ファイルを保存します。
出典:stephanV