对上传到我的应用的视频进行转码有什么好的设置?

问题描述 投票:0回答:1

我正在开发一个允许用户共享视频的应用。问题在于许多视频的比特率很高。例如,来自旧iPhone的4分钟的H264视频以1080p编码,运行速度为17163 kb / s(约500兆字节)。以这种比特率/分辨率接收和分发此类视频对于社交应用而言并不现实。

我一直在用ffmpeg进行播放,以将视频转码为较小的尺寸和较高的压缩率,但未取得令人满意的结果。例如:

ffmpeg \
    -i "$src" \
    -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

此命令将上述500MB文件转码为67MB。它将视频的较大尺寸缩放到780像素,并相当压缩视频。结果还可以,但是文件仍然很大。

将较长的尺寸减小到480像素,文件减小到40MB。仍然很大,现在已大大退化。另外,转码仍需要相当长的时间:在我4岁的具有16GB RAM的i7 Macbook Pro上,约为1-1.5倍。

我不确定如何对此进行改进。浏览器不支持H265。我想知道:

  • 如何进一步缩小尺寸?
  • 如何在不显着降低画质的情况下以高于1倍的速度转码?甚至2到3倍看起来也不是很好吗?

这是否尽善尽美?

video ffmpeg video-processing
1个回答
0
投票

Is this as good as it gets?

是。没有免费的视频编码午餐。

如果机器在某些intel CPU上具有QuickSync或Nvidia Gpus上的nvenc这样的硬件编码器,则可以加快编码速度。但是文件大小将相同,甚至更大。

© www.soinside.com 2019 - 2024. All rights reserved.