ffmpeg质量转换选项(视频压缩)
ffmpeg quality conversion options (video compression)
您能否提供 link 或解释 -q:v 1
参数,该参数涉及 ffmpeg 中的 video/image 质量和压缩。
让我解释一下...
for f in *
do
extension="${f##*.}"
filename="${f%.*}"
ffmpeg -i "$f" -q:v 1 "$filename"_lq."$extension"
rm -f "$f"
done
上面的 ffmpeg for
循环会压缩您工作目录中的所有图像和视频,它基本上会降低质量,从而导致较小的文件大小(期望的结果)。
我对这个 for
循环的 -q:v 1
参数最感兴趣。 -q:v 1
参数中的 1
控制压缩量。但是我找不到任何文档来描述如何更改 1
的这个值,并描述它的作用。是百分比吗?乘数?如何调节这个旋钮? Can/should 我使用负值?只有整数? Min/max 价值观?等等
我从 the official documentation 开始,但我能找到的最好的部分是关于视频质量的部分,-q
标志描述很少。
-frames[:stream_specifier] framecount (output,per-stream)
Stop writing to the stream after framecount frames.
.
-q[:stream_specifier] q (output,per-stream)
-qscale[:stream_specifier] q (output,per-stream)
Use fixed quality scale (VBR). The meaning of q/qscale is codec-dependent. If qscale is used without a stream_specifier then it applies only to the video stream, this is to maintain compatibility with previous behavior and as specifying the same codec specific value to 2 different codecs that is audio and video generally is not what is intended when no stream_specifier is used.
此选项是 -qscale:v
的别名,这可能就是您在研究过程中没有遇到它的原因(尽管我的结果首先出现在 google 上的“ffmpeg q:v” ).
这个 link 解释了 qscale
选项为什么不是乘数或百分比,而是比特率模式(所以它是比特率)。对于给定的编码器,这个数字越低,比特率和质量就越高。它通常跨越 1-31,但一些编码器可以接受此范围的子集。
-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
。
有关此选项的详细信息,请参阅 How can I extract a good quality JPEG image from a video file with ffmpeg?。
您能否提供 link 或解释 -q:v 1
参数,该参数涉及 ffmpeg 中的 video/image 质量和压缩。
让我解释一下...
for f in *
do
extension="${f##*.}"
filename="${f%.*}"
ffmpeg -i "$f" -q:v 1 "$filename"_lq."$extension"
rm -f "$f"
done
上面的 ffmpeg for
循环会压缩您工作目录中的所有图像和视频,它基本上会降低质量,从而导致较小的文件大小(期望的结果)。
我对这个 for
循环的 -q:v 1
参数最感兴趣。 -q:v 1
参数中的 1
控制压缩量。但是我找不到任何文档来描述如何更改 1
的这个值,并描述它的作用。是百分比吗?乘数?如何调节这个旋钮? Can/should 我使用负值?只有整数? Min/max 价值观?等等
我从 the official documentation 开始,但我能找到的最好的部分是关于视频质量的部分,-q
标志描述很少。
-frames[:stream_specifier] framecount (output,per-stream)
Stop writing to the stream after framecount frames.
.
-q[:stream_specifier] q (output,per-stream)
-qscale[:stream_specifier] q (output,per-stream)
Use fixed quality scale (VBR). The meaning of q/qscale is codec-dependent. If qscale is used without a stream_specifier then it applies only to the video stream, this is to maintain compatibility with previous behavior and as specifying the same codec specific value to 2 different codecs that is audio and video generally is not what is intended when no stream_specifier is used.
此选项是 -qscale:v
的别名,这可能就是您在研究过程中没有遇到它的原因(尽管我的结果首先出现在 google 上的“ffmpeg q:v” ).
这个 link 解释了 qscale
选项为什么不是乘数或百分比,而是比特率模式(所以它是比特率)。对于给定的编码器,这个数字越低,比特率和质量就越高。它通常跨越 1-31,但一些编码器可以接受此范围的子集。
-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
。
有关此选项的详细信息,请参阅 How can I extract a good quality JPEG image from a video file with ffmpeg?。