首页 > 解决方案 > ffmpeg 质量转换选项(视频压缩)

问题描述

您能否提供一个链接或解释,以解决-q:v 1ffmpeg 中处理视频/图像质量和压缩的论点。

让我解释...

for f in *
   do 
     extension="${f##*.}"
     filename="${f%.*}"
     ffmpeg -i "$f" -q:v 1 "$filename"_lq."$extension"
     rm -f "$f"
   done

上面的 ffmpegfor循环会压缩工作目录中的所有图像和视频,它基本上会降低质量,从而导致文件更小(所需的结果)。

我对这个循环的-q:v 1论点最感兴趣。参数中for的控制压缩量。但是我找不到任何描述如何更改 的值以及描述它的作用的文档。是百分比吗?乘数?这个旋钮怎么调节?我可以/应该使用负值吗?只有整数?最小值/最大值?等等1-q:v 11

我从官方文档开始,但我能找到的最好的部分是关于视频质量的部分,而且-q标志描述很少。

-frames[:stream_specifier] framecount (output,per-stream)
在 framecount 帧之后停止写入流。
.
-q[:stream_specifier] q (output,per-stream)

-qscale[:stream_specifier] q (output,per-stream)
使用固定质量比例 (VBR)。q/qscale 的含义取决于编解码器。如果 qscale 在没有 stream_specifier 的情况下使用,则它仅适用于视频流,这是为了保持与先前行为的兼容性,并且为 2 个不同的编解码器指定相同的编解码器特定值,即音频和视频通常不是没有 stream_specifier 时的预期用来。

标签: linuxffmpegcompressionvideo-processingvideo-compression

解决方案


-q:v可能被忽略了

您正在输出 MP4,因此很可能您正在使用输出 H.264 视频的编码器 libx264。

-q:v/-qscale:v被 libx264 忽略。

控制台输出甚至提供了一个警告:-qscale is ignored, -crf is recommended.

有关更多信息,-crf请参阅FFmpeg Wiki:H.264

我什么时候可以使用-q:v

MPEG* 编码器(mpeg4、mpeg2video、mpeg1video、mjpeg、libxvid、msmpeg4)可以使用-q:v/ -qscale:v

请参阅如何使用 ffmpeg 从视频文件中提取高质量的 JPEG 图像?有关此选项的更多信息。


推荐阅读