avconv(または他のツール)を使用したビデオとオーディオのトリミングとフェードイン/アウト

avconv(または他のツール)を使用したビデオとオーディオのトリミングとフェードイン/アウト

私はavconv画像をトリミングして変換するために使用します。 1時間のファイルmtsからビデオストリームとオーディオストリームの最初の7秒と最後の2.5秒を削除するとします。

avconv -i input.mts -map 0:0 -map 0:3 -ss 0:0:07 -t 0:59:50.5 out.mov

これまではうまくいきましたが、次のように追加して開始と終了に2秒のフェードインとアウトを追加したいと思います。

-vf fade=type=in:start_frame=350:nb_frames=100 -vf fade=type=out:start_frame=178750:nb_frames=100

avconvこれらのフレームは、ビデオソースによって報告された50fpsに基づいて計算されます。しかし、フェードインやフェードアウトはありません。

1)ビデオフェージングの原因と解決策は何ですか? 2)オーディオフェードを追加する方法。オプションがあるようです-afade。しかし、私は彼の記録を見つけることができませんでした。

あるいは、これを達成するための他のツール(ビデオとオーディオのトリミングとフェード)を提案することもできます。これはDebian 8用のパッケージとして提供されることをお勧めします。

ベストアンサー1

ついに@Mario G.が提案した答えを試してみる時間を見つけましたが、非常に面倒です。これを数十回行う必要があります。私は文書を読み、ffmpegそれがはるかに強力でavconvあり、オーディオとビデオの両方に対するフェードを含むことがわかりました。したがって、解決策は次のとおりです。

ffmpeg -i input.mts -map 0:0 -map 0:3 -ss 0:0:07 -to 0:59:57.5 -vf 'fade=t=in:st=7:d=2,fade=t=out:st=3595.5:d=2,crop=out_h=692' -af 'afade=t=in:st=7:d=2,afade=t=out:st=3595.5:d=2' out.mov

したがって、フェードのst=合計パラメータは、d=フレームに変換されなかった秒数でなければなりません。

-to長さを計算するのではなく、終了時間を直接取得するオプションも見つかりました。

このコマンドはすべてのステップを実行します。

  • チャンネル選択-map
  • -ss使用と剪定-to
  • ビデオフェード-vfオプションfade=t=infade=t=out
  • -afオプションを使用したオーディオフェードインとafade=t=inアウトafade=t=out
  • -vfオプションで切り取るcrop=

一歩だけ。

おすすめ記事