我正在开发一个允许用户分享视频的应用程序。问题是很多视频都是非常高的比特率。例如,来自旧H264的4分钟iPhone视频编码为1080 p,运行~17,000 kb/s (~500 kb)。在这个比特率/分辨率上接受和分发这样的视频对于社交应用来说是不实际的。
我一直在玩ffmpeg把视频转换成更小的大小和更高的压缩,但没有达到可接受的结果。例如:
ffmpeg \
-i in.mov \
-vf scale=w='if(gt(iw\,ih)\,780\,-2)':h='if(gt(iw\,ih)\,-2\,780)' \
-c:v libx264 \
-crf 28 \
-preset medium \
-pix_fmt yuv420p \
-movflags +faststart \
out.mp4此命令将上述500 to文件转换为70 to。它缩放视频的更大尺寸到780像素,压缩视频相当多。结果是可以的,但文件仍然很大。
将较长的维数降至480像素,文件将减少到40 to。仍然很大,现在已经严重退化了。此外,转码仍然需要相当长的时间:在我4岁的i7 Macbook Pro上大约有1-1.5倍的内存,内存为16 i7。
我不知道该怎么改进。浏览器不支持H265。我想知道:
就这么好吗?
发布于 2020-05-13 21:32:20
Is this as good as it gets?
是。在视频编码中没有免费午餐这样的东西。
如果机器在某些英特尔CPU上有QuickSync这样的硬件编码器,或者在Nvidia Gpus上有nvenc (或某些Mac/iOS上的视频工具箱),则可以加快编码速度。但文件大小将是相同的,甚至更大一点。
https://stackoverflow.com/questions/61784204
复制相似问题