ffmpeg中-preset veryslow与-vcodec copy联用未生效的技术咨询
问题解析与解决方案
核心原因:流复制跳过了编码流程
你使用的-vcodec copy和-acodec copy参数,会让FFmpeg直接复制原始音视频流,完全跳过编码/重新压缩环节:
- 此时
-preset veryslow、-crf 0这类编码相关参数根本不会生效,因为没有任何编码操作发生 - 整个过程只是截取原视频对应时间段的流,重新封装成MKV格式,所以速度极快,输出文件大小就是那段原始流的实际大小
满足需求的正确操作
你的需求是「无损前提下尽可能压缩x265视频」,必须通过重新编码才能利用-preset veryslow的压缩优化,同时保证无损画质。
正确命令示例
ffmpeg \ -i movie.mkv \ -ss 01:21:46 \ -t 00:05:27 \ -c:v libx265 \ -crf 0 \ -preset veryslow \ -c:a copy \ song.mkv
参数说明
-c:v libx265:明确指定使用x265编码器对视频重新编码-crf 0:开启x265的无损模式,完全保留原始画面信息,无任何画质损失-preset veryslow:让编码器花费更多时间分析画面细节,寻找最优编码策略,在无损前提下生成体积最小的文件(耗时会显著增加,可能需要几十分钟甚至更久,具体取决于电脑性能和视频长度)-c:a copy:如果原音频是无损编码(如FLAC、PCM),直接复制即可;若原音频是有损格式(如AAC),想要无损音质的话可改为-c:a flac(转成FLAC无损音频,文件体积会比原有损音频大,但音质无损失)
补充说明
x265的无损模式下,不同预设会直接影响文件体积和编码时间:veryslow比fast/medium预设生成的无损文件更小,但编码耗时会数倍增加,这正是你预期的「耗时更久、压缩效果更好」的表现。
内容的提问来源于stack exchange,提问作者amithapase
相关产品推荐
相关产品推荐

