Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 对上传到我的应用程序的视频进行转码的好设置是什么?_Video_Ffmpeg_Video Processing - Fatal编程技术网

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

Video 对上传到我的应用程序的视频进行转码的好设置是什么?,video,ffmpeg,video-processing,Video,Ffmpeg,Video Processing,我正在开发一个允许用户共享视频的应用程序。问题是许多视频的比特率非常高。例如,来自旧iPhone的4分钟H264视频编码为1080p,运行速度约为17000 kb/s(约500兆字节)。以这种比特率/分辨率接收和分发此类视频对于社交应用程序来说并不实际 我一直在使用ffmpeg将视频转码到更小的大小和更高的压缩,但没有达到可接受的结果。例如: ffmpeg \ -i in.mov \ -vf scale=w='if(gt(iw\,ih)\,780\,-2)':h='if(gt(i

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

我一直在使用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
此命令将上述500MB文件的代码转换为70MB。它将视频的较大尺寸缩放到780像素,并对视频进行了大量压缩。结果还可以,但文件仍然很大

将较长的尺寸降低到480像素,文件将减少到40MB。仍然相当大,现在已经严重退化。此外,转码仍然需要相当长的时间:在我4岁的i7 Macbook Pro上,16GB内存大约是1-1.5倍

我不知道如何改进这一点。浏览器中不支持H265。我想知道:

  • 如何进一步缩小尺寸
  • 如何在不显著降低质量的情况下以比1x更快的速度进行转码?即使是2-3倍也不太好

这是最好的吗?

这是最好的吗?

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


如果机器在某些intel CPU上有QuickSync这样的硬件编码器,或在Nvidia GPU上有NVNC(或在某些Mac/iOS上有videotoolbox),则可以加快编码速度。但文件大小将相同,甚至稍大一点。

谢谢。正如我所怀疑的那样。不过我还是不明白:比方说,我将一部800MB的故事片拍成电影,
ffprobe
在视频流(1280x544)中以855kb/s的速度报告H264,质量相当好。这样的结果是否只有在非常慢的编码(即多次通过)下才能实现?在我上面使用上述命令的示例中,生成的比特率为2173kb/s(438x780)。无法回答这个问题,因为有许多变量在起作用。分辨率帧速率、编码设置、视频信息密度、如何测量“质量”等。次要建议是流式复制音频(如果音频已经是AAC:
-c:a copy
)。根据您命令中完整日志的内容,可能还有其他建议,但对任何重要内容都有疑问。@llogan谢谢,我想知道如何处理音频流。。。指定
-c:a副本的好处是什么?这似乎是默认行为?
-c:a copy
将(复制并粘贴)音频:否则它将重新编码到AAC,以进行MP4输出,这会使速度变慢并引入。流复制不是默认值。谢谢!我想我误解了默认部分。我会再复习的。是的,如果音频小于或等于128kbs,重新编码是没有意义的。那个特定的wiki页面太乱了,需要重新编写。请参阅文档中的。