1

我正在尝试使用我的 Vega 11 GPU 将某些视频文件的硬件加速转码到 1280x720 的分辨率。我想保持原始纵横比,并根据需要在边框上添加黑条。我可以通过以下方式进行缩放:

ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -i input.mp4 -codec:v h264_vaapi -vf scale_vaapi=w=1280:h=720,setsar=1:1 output.mp4

但是某些图像会因此而被拉伸,并且不会保留原始纵横比。

在 Raspberry Pi 上,我可以通过以下方式获得我想要的效果:

ffmpeg -i input.mp4 -b:v 2M -vf scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:'(ow-iw)/2':'(oh-ih)/2',setsar=1 -vcodec h264_v4l2m2m -num_capture_buffers 128 output.mp4

但是当我尝试将 force_original_aspect_ratio 和 pad 选项与 vaapi 编解码器一起使用时,我收到以下错误:

ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -i input.mp4 -codec:v h264_vaapi -vf scale_vaapi=w=1280:h=720,pad=1280:720:'(ow-iw)/2':'(oh-ih)/2',setsar=1:1 output.mp4

Impossible to convert between the formats supported by the filter 'Parsed_scale_vaapi_0' and the filter 'auto_scaler_0'
Error reinitializing filters!
Failed to inject frame into filter network: Function not implemented
Error while processing the decoded data for stream #0:0

我应该使用其他选项来获取填充并保持原始纵横比吗?

4

0 回答 0