ffmpeg vaapiエンコーディングのため、右側に黒いバーが表示されます。

ffmpeg vaapiエンコーディングのため、右側に黒いバーが表示されます。

vaapiを使用して854x480 h264 mp4ビデオをh265 mp4ビデオにトランスコードしようとしています。

ビデオが良く見え、非常に高速にエンコードされます。ところが映像右側に黒いバーが見えますね。 1280x720にアップグレードするようにコマンドを変更すると、これは発生しません。

ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i 1.mp4 -c:v hevc_vaapi -vf scale_vaapi=854:480 -ss 00:00:0.0 -t 10 -maxrate 400 output.mp4

ベストアンサー1

AMDハードウェアを使用していますか?

AFAICS これは、AMD でハードウェアアクセラレーションを使用する際に発生するバグです。 (Ubuntu 20.04、ffmpeg 4.2.4.1、メサ20.0.8)

[hevc_vaapi @ 0x5644267bf7c0] Driver does not support some wanted packed headers (wanted 0xd, found 0).
[hevc_vaapi @ 0x5644267bf7c0] Driver does not support packed sequence headers, but a global header is requested.
[hevc_vaapi @ 0x5644267bf7c0] No global header will be written: this may result in a stream which is not usable for some purposes (e.g. not muxable to some containers).
[hevc_vaapi @ 0x5644267bf7c0] Cropping information on input frames ignored due to lack of API support.

ソフトウェアエンコーディングではこれは発生しません。

そのため、回避策として hevc_vaapi の代わりに hevc/lib265x を使用してください。

 -c:v hevc

おすすめ記事