1

各画像が音声付きで約5秒間表示されるスライドショーを作成するために、ffmpegについて頭を悩ませようとしています。これまでに以下を実行するためのbatファイルを作成しました:

ffmpeg -f image2 -i image-%%03d.jpg -i music.mp3 output.mpg

画像を取得し、ビデオの最初の 1 秒で非常に高速に表示し、最後の画像を表示しながら残りのオーディオを再生します。

画像を長く (約 5 秒) 表示し、最後のフレームの後でビデオを停止したい (残りの曲を再生しない) ことは可能ですか? より長く維持するために何百もの同じ画像を持つことで、私が推測するフレームレートをハックすることができますが、これは理想からはほど遠いです!

ありがとう

4

2 に答える 2

5

mpg 出力のデフォルト エンコーダー はmpeg1video、許容されるフレーム レートに関して厳密であるため、入力と出力-rが必要です。

ffmpeg -r 1/5 -i image-%03d.jpg -i music.mp3 -r 25 -qscale:v 2 -shortest -codec:a copy output.mpg

入力画像のフレーム レートは 5 秒ごとに 1 フレームで、出力はフレームを複製して 1 秒あたり 25 フレームに達します。

  • -f image2通常は必要ありません。
  • -qscale:v出力品質を制御できます。適切な範囲は 2 ~ 5 です。
  • -shortest出力期間を最短の入力期間と同じにします。
  • -codec:a copy再エンコードする代わりに、MP3 オーディオをコピーします。

MPEG-1 ビデオには、より新しい代替手段があります。詳細については、FFmpeg および x264 エンコーディング ガイドを参照してください。

以下も参照してください:
* FFmpeg FAQ: 単一の画像をムービーにエンコードするにはどうすればよいですか?
* FFmpeg Wiki: 画像からビデオ スライドショーを作成する

于 2013-06-14T19:17:39.287 に答える
0

出力フレームレートの代わりにフィルター fps を使用できます

ffmpeg -r 1/5 -i img%03d.png -i musicfile -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4

ただし、これは奇妙に最後の画像をスキップします。

于 2013-12-19T14:40:33.537 に答える