私は最近、Twitch APIを使用してTwitchビデオをスクラップし、YouTubeに投稿するボットを作成しました。例については、こちらのYouTubeチャンネルをご覧ください。https://www.youtube.com/channel/UCuhWw8LbPWdkybIF9olAszw
私の問題は、これらの一般的なTwitch動画を自動的にアップロードできるYouTubeクリップに変換する方法を探したいということです。顔カメラを含める必要はなく、ビデオ全体を9:16形式に圧縮するだけです。
私はFFMPEGを使ってみましたが、これを正しく実行しているかどうかはわかりません。
変換したいビデオの例は次のとおりです。https://www.youtube.com/watch?v=hZecXrvd6_g
(露骨な表現を申し訳ありません。これは私のボットチャンネルで初めて見た動画です。)
Tldr:mp4ファイルを9:16ビデオ形式に変換
編集:FFMPEGコマンドを実行しました。
ffmpeg -i video.mp4 -vf scale=1280:720 output.mp4
よろしくお願いします!これは数日間私を悩ませました。
答え1
scale
ビデオのサイズが調整されます。縦横比を変更するには、以下を試してください。
ffmpeg -i video.mp4 -vf setdar=9/16 output.mp4
答え2
以下のようにクリップを9/16に切ります。
ffmpeg -i video.mp4 -vf crop=ih*(9/16):ih output.mp4
答え3
YouTubeショートの最大長は60秒です。このコマンドを使用すると、ビデオをセグメントに分割してサイズ変更できます。
ffmpeg -i video.mp4 -ss 00:00:00 -t 00:01:00 -vf "[in]scale=iw*min(1080/iw\,1920/ih):ih*min(1080/iw\,1920/ih),pad=1080:1920:(1080-iw)/2:(1920-ih)/2[out]" newVideo.mp4
このコマンドは最初の1分を切り捨て、他の部分を切り取るにはそれを計算して実行するための数学的ロジックを作成する必要があります。私はPHPで作業しました。以下を確認してください。 https://gist.github.com/drpshtiwan/45fd233695b168056af980c56b93579c
任意に選択できる
または、分割ビデオ(newVideo.mp4)を黒の背景、60秒の持続時間、および9/16の比率を持つ背景ビデオにオーバーレイする必要があります。これがffmpegコマンドの魔法です;) Full HD映像を使って中央に映像をオーバーレイしました。
ffmpeg -i background.mp4 -i newVideo.mp4 -filter_complex "[1:v]scale=1080:-1[v2];[0:v][v2]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" -map 1:a -c:v libx264 -c:a copy shortVide.mp4
答え4
これは私にとって効果的です。
ffmpeg -i sample.mp4 -vf "crop='min(iw,ih)*9/16:min(iw,ih):iw/2:ih/2'" cropped.mp4