FFmpegでエンコードした動画をTwitterにあげる

はじめに

ShadowPlayで撮影したゲームの一シーンとかTwitterにあげたいなって時の話
GUIツール入れるのめんどくさいのでFFmpegで任意部分をカットしてエンコードする

環境

  • Windows 7 64bit
  • ffmpeg version N-81609-g7b3bc36

動画の切り出し

10分30秒から2分切り出す場合

  • 入力ファイル
    input.mp4
  • 出力ファイル名
    output.mp4
1$ ffmpeg -ss 00:10:30 -i input.mp4 -t 120 output.mp4

こんな感じで切り出せる
iオプションよりssオプションを前に持ってくることでシーク時間が早くなる
逆にするとファイルの最初から読み出すため動画が長ければ長い程シークに時間を取られる

YouTube等の動画サイトにあげる時はこれで良いがTwitterにあげる際にはもう1つオプションを追加する必要がある

1$ ffmpeg -ss 00:10:30 -i input.mp4 -t 120 -pix_fmt yuv420p  output.mp4

これでTwitterの公式サイトの方でD&Dすると動画をアップロードすることが出来る
少し前からFFmpegがCUDA対応してるからそれ込みで使えば多少長くても結構早めに切り出せるかな
こんな感じ

1$ ffmpeg -ss 00:10:30 -i input.mp4 -t 120 -vcodec nvenc -pix_fmt yuv420p  output.mp4

もし動画連結するなら

1$ ffmpeg -i input_1.movie -i input_2.movie -filter_complex "concat=n=2:v=1:a=1" output.mp4

参考記事