FFmpegを利用して、動画ファイルの左右(または上下)に表示される黒い部分を削除して再出力する方法を備忘録的に投稿しておきます。
動画左右の黒い部分
ダウンロードした動画を再生すると、左右(または上下)に余白のような黒い(黒じゃない場合もある)部分が追加されていることがあります。
この黒い部分は[PAD]と呼ばれていて、16:9の縦横比から異なる動画に追加されることが多いです。
今では、ほとんどの動画が縦横比が[16:9]で作成されていますが、YouTubeが出現する前の時代には[4:3]が主流でした。
そのため[16:9]で作成された動画が前提のサイトで、異なる縦横比の動画を再生した際にレイアウトの崩れを防止するために動画の左右に余白を追加している場合があります。
クロップして再エンコード
余白部分のサイズが分かれば、FFmpegで削除した動画を再出力できます。
例えば、こんな感じ。
HD(1280×720)の動画で横幅が980ピクセルで余白がある場合
黒い部分の横幅は、150ピクセルと計算できます。
余白部分の数値でクロップして再出力します。
ffmpeg -i sample.mp4 -vf "crop=980:720:150:0,scale=980:720:force_original_aspect_ratio=decrease" -c:a copy output.mp4
ピクセル縦横比が異なる場合
動画で設定されているピクセル縦横比が異なる場合には、プレイヤーで見えているサイズと、動画で保存されているサイズが異なるので再出力時に縦横比を無視して出力する必要があります。
ピクセル縦横比が異なる場合は、こんな感じ。
動画ファイルには、こんな感じ縦長で保存されています。(ピクセルの縦横比が横長になっている場合には、横長で再生されます)
この場合の黒い部分は、300ピクセルと計算できます。
後は、余白部分の数値でクロップして縦横比を無視して再出力します。
ffmpeg -i sample.mp4 -vf "crop=680:720:300:0,scale=980:720:force_original_aspect_ratio=disable" -c:a copy output.mp4
まとめ
今回はFFmpegを利用して、動画ファイルの左右(または上下)に表示される黒い部分を削除して再出力する方法を書きました。
意図的に追加されている余白部分のサイズが分かれば、FFmpegでクロップしてから再出力して削除ができます。
[FFmpeg]で動画ファイル内の左右(または上下)の黒い部分を削除したい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。