我正在寻找一个问题的解决方案,在旅行中我偶然发现了一些与我正在做的事情相关的东西,这引发了第二个问题。
我把这两个问题都放在了一起。如果不能,我会按照要求将其拆分成两个单独的问题。
我正在寻找使用 RTSP strteam 中的 ffmpeg 从我的 IP 摄像机输出图像的方法。
我找到了,就是这个(我在 DOS 提示符下测试过)
ffmpeg -i rtsp://192.168.0.8/video_1 -f image2 -s 360x240 -vf fps=fps=10/60 img%3d.jpg
我正在寻找一种控制图像质量的方法。我记得当我将几张 jpeg 编码为视频文件时,我会使用这个:
-f image2 -r FPS-i + MyPath + \img%05d.jpg -crf 23 -y -r 'FPS' + 'oggOut.ogg'
这里使用 -crf 23 设置质量,其中 23 表示图像质量。我听说数字越低,质量越好。
有没有办法在我的第一个命令行中指定图像质量?我尝试将 crf 放在任何地方,但它告诉我无法识别标志。
在寻找解决方案时,我发现了此页面:
该页面上的最后一个例子指出:
这将在每个 I 帧创建一个缩略图
我理解 i-Frame 是前一帧和当前帧之间的变化?当我测试它时,它只返回一串图像。我误解了 I-Frame 的含义吗?
答案1
用于-q:v
控制 JPG 输出的质量。范围是 2-31。值越低,质量越高,因此文件大小也越大。
该-crf
选项由编码器 libx264(H.264 视频)和 libvpx(VP8/VP9 视频)使用,但这些编码器的值有所不同。它不适用于 mjpeg(JPG 图像/MJPEG 视频)或 libtheora(Theora 视频)。
此外,你还可能会发现缩放视频过滤器比 更灵活,-s
因为您只需声明一个维度,过滤器就会自动提供另一个维度,同时保留纵横比:-vf fps=1/6,scale=360:-1
。使用-s
强制指定特定尺寸可能会导致输出被挤压或拉伸。