1

我正在尝试在一些性能非常低的硬件上播放一些视频(主要是 webm)。硬件几乎无法处理全高清输出。

由于所讨论的设备仅通过 3G 调制解调器在线,因此视频大小也有一定的影响。但是现在,演奏性能绝对是更重要的部分。

那么,问题来了:有没有什么办法avconv可以提高播放性能?还是我应该简单地使用另一个编解码器?

现在,使用的命令如下所示:

avconv \
    -i $input_file \
    -y \
    -vf scale=$scale \
    -an \
    $output_file
4

2 回答 2

0

您可能想使用 ffmpeg 而不是 avconv (ffmpeg 更加活跃和可靠 - 我认为):

  • 使用 libvpx 支持编译 ffmpeg (WebM):指南
  • 我建议你使用CBR 编码
  • 将 --profile 设置为 3: guide,如果需要,请阅读更多选项
  • 通常,您希望尽可能降低项目要求可接受的帧分辨率和每秒帧数,并为其设置适当的比特率。
于 2014-10-22T14:15:26.903 回答
0

您可以尝试一种方法,即在高度上将视频缩小两次,同时保持宽度不变:

$ avconv -i 01.webm -vf 'scale=w=iw:h=ih/2' -c:v libtheora -c:a copy 01.ogv

对我来说,生成了一个大小为 84% 的文件

$ avconv -i 01.webm -c:v libtheora -c:a copy 01.ogv

这种方式比宽度缩放要好得多,因为它不会对可能出现在屏幕上的文本造成太大的损害(无论出于何种原因,人脑都可以比处理水平失真更容易处理垂直失真)。

您还可以应用去噪过滤器hqdn3d,这将使文件变小,但不会损害视频的质量。

播放机处理器的负载有时更难预测何时从一个视频转到另一个视频;但是编解码器有所不同。我没有对它们进行太多比较,因此无法提供真正的帮助。

于 2014-11-09T10:05:05.210 回答