ffmpeg重新编码视频
指定显卡需要在PowerShell设置临时环境变量,类似于:
$env:CUDA_VISIBLE_DEVICES="1" # 限制仅1号GPU可用
将视频编码为1080p30Hz且支持比较老的处理器硬解码(大概16倍速):
ffmpeg -i 'input.mp4' -c:v h264_nvenc -profile:v main -level 4.0 -r 30 -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=ceil(iw/2)*2:ceil(ih/2)*2" -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart output.mp4
即可。注意上面将使用GPU编码,可能画质会烂,但是速度绝对快不少。
如果希望cpu不参与任何过程(但是可能反而更慢,大概9倍速):
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i '死神来了6:血脉诅咒.美版4K内嵌中英字幕手机宽屏版.2025.HD2160P×265.AAC.English.CHS-ENG.星球4K压制组.mp4' -c:v h264_nvenc -profile:v main -level 4.0 -r 30 -vf "scale_cuda=1920:1080:force_original_aspect_ratio=decrease,hwdownload,format=nv12,pad=ceil(iw/2)*2:ceil(ih/2)*2,hwupload_cuda" -c:a aac -b:a 128k -movflags +faststart output_full_hw5.mp4
如果是cpu(大概6倍速):
ffmpeg -i 'file.mp4' -c:v libx264 -profile:v main -level 4.0 -r 30 -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=ceil(iw/2)*2:ceil(ih/2)*2" -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart output_z2560_safe.mp4
