使用 avconv 转换的 Webm 视频无法正常工作

使用 avconv 转换的 Webm 视频无法正常工作

我正在使用以下命令将 mp4 视频转换为 webm:

avconv -i INPUT.mp4 -c:v libvpx -qmin 10 -qmax 42 -maxrate 500k -bufsize 1000k -threads 2 -c:a libvorbis OUTPUT.webm

我做错了吗?我应该使用所有这些参数吗?我只是想让视频与所有浏览器/设备兼容。

在大多数设备上的 Firefox 以及我拥有的特定 Android 设备上的 Chrome 上,视频都无法播放。

编辑:当我在任何 Android 设备上的 Firefox 上播放嵌入的视频时,它会直接跳到末尾并且不会播放。只有我单击进度条时它才会播放。如果我在 Firefox 上打开视频而不将它们嵌入到 html 页面中,它们外面似乎有一个更大宽度的框,而视频则在里面。

我上传了一个我转换的视频。在 Firefox 中尝试一下:https://mega.co.nz/#!cg9FVZJD!CpC6X3NXH8rAVdBiS9ZqqwyITdyPb_qkKAKsvQXRpzI

这是转换前后视频的对比: ![此处有图片]:https://i.stack.imgur.com/HhoJp.jpg

答案1

我使用相同的转换工具也遇到了同样的问题。视频在 Chromium 中播放正常,但在 Firefox 30 (Linux) 或 Aurora 31 (Windows) 中播放不正常。几个月前,当我使用 ffmpeg(avconv 是其分支)时,一切都按预期运行。

我注意到,在 Firefox 上,视频的进度条会出现,并且显示视频已经播放过了。将其滑回开始并按播放将显示视频,但它出现在屏幕中央,太小而看不到内容。如果右键单击小视频并单击全屏,它将正常播放。

使用 ffmpeg 制作的旧 webm 视频在同一版本的 Firefox 中运行良好,因此看起来 avconv 创建的文件在某些​​方面有所不同。也许由于某种原因,它们无法正确报告其尺寸?

我会在周末尝试摆弄一下,然后再报告结果。

问候,

史蒂夫

答案2

我有同样的经历,但我注意到我得到的 WEBM 文件使用的是 VP8,而不是 VP9。

这是我在 Ubuntu 12.04 和 14.04 系统上使用的命令行:

avconv -threads auto -strict experimental -i /tmp/c5858937cc47b4c237e1a6ba0b8ba01220140627-2490-1vwkdcr -y -vcodec libvpx -b 250k -maxrate 250k -bufsize 500k -pix_fmt yuv420p -flags +mv4+aic -threads auto -b:a 128k -strict -2 -s 640x360 /tmp/c5858937cc47b4c237e1a6ba0b8ba01220140627-2490-1vwkdcr20140627-2490-ufj5hv.webm

两个系统上均没有错误消息。

  • 在 12.04 系统上,webm 视频的行为符合预期 - 视频的初始帧显示在嵌入式播放器中,视频播放正常。

  • 如果我在 VLC 中打开该文件,它可以正常播放。

  • 在 14.04 服务器上使用随附的 avconv 版本,如果我将文件嵌入网页,视频会显示为黑色。按下播放器 (VideoJS) 上的播放按钮只会跳到结尾。

  • 如果我向后拖动 VideoJS 滑块,我可以看到视频的一帧,但它不会播放。

我在两个系统上使用相同的 Ruby on Rails 应用程序、相同版本的 jquery、videojs 以及任何其他 javascript 库。

我将尝试在 14.04 系统上使用 12.04 系统的二进制文件,看看行为是否有任何不同,然后在此报告。

相关内容