为什么一个ffmpeg webm破折号流比其他流量大得多?

时间:2017-01-05 04:52:29

标签: ffmpeg webm mpeg-dash

整个夏天,我努力整理一个脚本,该脚本采用x264视频/ mp3流并将其分解为不同的流,以便通过MSE-DASH工作。 (严重依据webmproject.org website上的说明)这些相同的脚本已停止工作,将6GB视频转换为几个25 Gb视频。我跟上了ffmpeg的更新,所以我不知道它何时停止工作,但我猜这是因为他们的DASH Webm实现的更新方式。

我发现新方法效果更好,但仍然存在一个流的主要问题。我希望有人可以解释这种编码是如何工作的,这样我才能理解其根本原因。

#!/bin/bash
COMMON_OPTS="-map 0:0 -an -threads 11 -cpu-used 4 -cmp chroma"
WEBM_OPTS="-f webm -c:v vp9 -keyint_min 50 -g 50 -dash 1"

ffmpeg -i $1 -vn -acodec libvorbis -ab 128k audio.webm &
ffmpeg -i $1 $COMMON_OPTS $WEBM_OPTS -b:v 500k -vf scale=1280:720 -y vid-500k.webm &
ffmpeg -i $1 $COMMON_OPTS $WEBM_OPTS -b:v 700k -vf scale=1280:720 -y vid-700k.webm & 
ffmpeg -i $1 $COMMON_OPTS $WEBM_OPTS -b:v 1000k -vf scale=1280:720 -y vid-1000k.webm &
ffmpeg -i $1 $COMMON_OPTS $WEBM_OPTS -b:v 1500k -vf scale=1280:720 -y vid-1500k.webm  

转码尚未完成,但你可以看到它的发展方向:

-rw-r--r--  1 user  staff    87M Jan  4 23:27 audio.webm
-rw-r--r--  1 user  staff    27M Jan  4 23:42 vid-1000k.webm
-rw-r--r--  1 user  staff   285M Jan  4 23:42 vid-1500k.webm
-rw-r--r--  1 user  staff    15M Jan  4 23:42 vid-500k.webm
-rw-r--r--  1 user  staff    20M Jan  4 23:42 vid-700k.webm

1500k变体比其他流不成比例地大。

另一个问题是,当我使用较短的视频时,可以说八九分钟,上述配置按预期运行,一切都很完美。我不知道这个限制在哪里,因为每次测试都要花费大量的处理能力和时间,但是如果它不到十分钟就可以工作,如果超过一个小时,就会产生大量的文件。

1 个答案:

答案 0 :(得分:1)

如果您希望将视频比特率限制为某个值,则仅使用-b:v是不够的。根据信号源(高移动,场景复杂度),实际比特率会更高。

您还需要指定-maxrate-bufsize

IE中。得到一个约为1500k的可变比特率(VBR)视频 - 峰值可以更高,具体取决于VBV的大小 - 您可以使用:

-b:v 1500k -maxrate 1500k -bufsize 1500k

对于恒定比特率(CBR),使用单帧VBV实现最佳结果。 25fps(1500/25 = 60)的示例:

-b:v 1500k -minrate 1500k -maxrate 1500k -bufsize 60k