在没有质量损失的情况下将 mp4 转换为 webp (ffmpeg)
convert mp4 to webp without quality loss (ffmpeg)
我该怎么做?
ffmpeg -y -i input.mp4 -vcodec libwebp -lossless 0 -compression_level 0 -loop 0 output_lossless0_comp0.webp
和
ffmpeg -i input.mp4 -vcodec libwebp -filter:v fps=fps=20 -lossless 0 -compression_level 3 -q:v 70 -loop 1 -preset picture -an -vsync 0 -s 800:600 output.webp
导致严重的质量损失。
我在其他地方找到的所有其他命令行都会导致无限的编码时间和荒谬的文件大小(当源文件为 3 MB 时为 500+ MB)。
我只需要将 mp4 转换为 webp 而不压缩或质量损失。
只有 -c:v copy
选项可以保证类似大小的输出而不会降低质量,但是 webp
不支持 mp4
编解码器,因此您需要使用“一些”编码器和任何编码器都会导致质量下降或输出文件变大(这是一种权衡)。
如果您使用 libwebp
(documentation),那么您将需要尝试使用其参数的不同值来获得在尺寸、质量和性能方面对您有利的结果时间。
我会使用 -lossless 0
或 -lossless 1
以及 -compression_level
参数的不同值来开始任何测试:
For lossy, this is a quality/speed tradeoff. Higher values give better
quality for a given size at the cost of increased encoding time. For
lossless, this is a size/speed tradeoff. Higher values give smaller
size at the cost of increased encoding time. More specifically, it
controls the number of extra algorithms and compression tools used,
and varies the combination of these tools. This maps to the method
option in libwebp. The valid range is 0 to 6. Default is 4.
我该怎么做?
ffmpeg -y -i input.mp4 -vcodec libwebp -lossless 0 -compression_level 0 -loop 0 output_lossless0_comp0.webp
和
ffmpeg -i input.mp4 -vcodec libwebp -filter:v fps=fps=20 -lossless 0 -compression_level 3 -q:v 70 -loop 1 -preset picture -an -vsync 0 -s 800:600 output.webp
导致严重的质量损失。
我在其他地方找到的所有其他命令行都会导致无限的编码时间和荒谬的文件大小(当源文件为 3 MB 时为 500+ MB)。
我只需要将 mp4 转换为 webp 而不压缩或质量损失。
只有 -c:v copy
选项可以保证类似大小的输出而不会降低质量,但是 webp
不支持 mp4
编解码器,因此您需要使用“一些”编码器和任何编码器都会导致质量下降或输出文件变大(这是一种权衡)。
如果您使用 libwebp
(documentation),那么您将需要尝试使用其参数的不同值来获得在尺寸、质量和性能方面对您有利的结果时间。
我会使用 -lossless 0
或 -lossless 1
以及 -compression_level
参数的不同值来开始任何测试:
For lossy, this is a quality/speed tradeoff. Higher values give better quality for a given size at the cost of increased encoding time. For lossless, this is a size/speed tradeoff. Higher values give smaller size at the cost of increased encoding time. More specifically, it controls the number of extra algorithms and compression tools used, and varies the combination of these tools. This maps to the method option in libwebp. The valid range is 0 to 6. Default is 4.