我怎么能这么做?
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导致大量的质量损失。
我在其他地方找到的所有其他命令行都会导致无限的编码时间和荒谬的文件大小(当源为3MB时,500+ MB)。
我所需要的就是将mp4转换成webp,而不需要压缩或质量损失。
发布于 2022-02-12 15:16:47
只有-c:v copy选项才能保证输出的大小相同而不会造成质量损失,但是webp不支持mp4编解码器,因此您需要使用“一些”编码器,而任何编码器都会导致输出文件的质量下降或更大的大小(这是一种权衡)。
如果使用libwebp (文档),则需要对其参数的不同值进行实验,以获得在大小、质量和时间方面对您有好处的结果。
我将使用-lossless 0或-lossless 1启动任何测试,同时为-compression_level参数设置一个不同的值:
对于有损,这是一个质量/速度的权衡。较高的值以增加编码时间为代价,为给定大小提供更好的质量。对于无损的情况,这是一个大小/速度的权衡。较高的值以增加编码时间为代价,使尺寸更小。更具体地说,它控制使用的额外算法和压缩工具的数量,并改变这些工具的组合。这将映射到libwebp中的方法选项。有效范围为0至6,默认范围为4。
https://stackoverflow.com/questions/71092597
复制相似问题