linux - ffmpeg 质量转换选项(视频压缩)
问题描述
您能否提供一个链接或解释,以解决-q:v 1
ffmpeg 中处理视频/图像质量和压缩的论点。
让我解释...
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 1
1
我从官方文档开始,但我能找到的最好的部分是关于视频质量的部分,而且-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 时的预期用来。
解决方案
-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 图像?有关此选项的更多信息。
推荐阅读
- github-api - Github API /用户标识符属性
- linux - 从“dd”恢复备份(softRAID HDD 可能有问题)
- ruby-on-rails - Sidekiq 在使用多个队列时忽略并发性
- pandas - 将具有远期日期的 CSV 解析为 Parquet
- javascript - Javascript构建动态多维数组
- html - 框转换不会响应 :hover
- arrays - React Native - 无法从 json 文件中的 Array 中访问 Array 中的数据
- javascript - 有条件地渲染属性对象值?
- android - Android的DisplayMetrics的heightpixels是否考虑了状态栏和软导航栏?
- c++ - 计算具有限制的唯一排列的有效方法