FFmpeg 硬编硬解

来自艺搜天下
跳到导航 跳到搜索

硬编的质量通常比软编差一点。

比如rpi上有mmal,openmax

Hardware filters可能需要用到hwupload and hwdownload filter

ffmpeg -i input -c:v h264_nvenc -profile high444p -pixel_format yuv444p -preset default output.mp4 #  可用的选项可通过ffmpeg -h encoder=h264_nvenc查看
ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input output
ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input -c:v h264_nvenc -preset slow output

要加快编码过程,可以使用无损编码并禁用高级编码器选项

ffmpeg -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 -c:v libx264 -crf 0 -preset ultrafast output.mkv #-crf 0告诉x264以无损模式编码; -preset ultrafast建议它快速完成

如果想要文件小一点:请再次无损地重新编码,但预设速度较慢。请注意,由于初始记录是无损的,并且重新编码也是无损的,因此在此过程中不会以任何方式引入质量损失。

ffmpeg -i output.mkv -c:v libx264 -crf 0 -preset veryslow output-smaller.mkv 

参考

https://trac.ffmpeg.org/wiki/HWAccelIntro