如何将mp4转换为webm?

33
如有可能,我该如何使用VLC将视频从mp4转换为webm?我应该选择哪种编解码器?需要重新编码声音吗?
我正在尝试在网站上使用HTML5视频,并提供Flash作为备用方案。据我了解,除非您使用的是Windows 7 64位系统,否则Firefox只支持webm格式。Theora似乎可以工作,但据我了解,它有点过时,而且在正确渲染图像之前需要一段时间,并且没有缩略图可用 :(
<video controls width="500">
    <!-- if Firefox -->  
    <source src="video/45-theora.ogg" type="video/ogg" />
     <!-- if Safari/Chrome-->
    <source src="video/45.mp4" type="video/mp4" />
</video>

哦,我使用的是Mac OS Lion,但如果有人觉得这样更方便,我也可以使用Windows 7、Vista和XP。
谢谢任何帮助!

25
45.mp4转换为45.webm:使用FFmpeg命令ffmpeg -i 45.mp4 45.webm - user285594
7个回答

30

更新一下,我不再推荐使用Miro Video Converter。它曾经是我用来创建网页HTML5视频的首选工具,但是目前程序的版本3在转换为ogg theora格式时存在问题:转换后的视频质量太低,要创建更高质量的版本,必须使用ffmpeg命令行工具。

Easyhtml5video非常好用,它会自动创建所有支持flash回退的视频格式以及嵌入式代码,但需要支付$69的费用 - 免费版将在视频上添加水印。

现在我使用VLC播放器进行视频转换。要在VLC中将mp4文件转换为其他格式,按照以下步骤进行:

转换为.webm格式:

  1. 从菜单中选择“媒体”>“转换/保存”。
  2. 点击“添加”按钮并选择要转换的文件。
  3. 点击“转换/保存”按钮。
  4. 在“配置文件”下拉菜单中选择“视频 - VP80 + Vorbis(Webm)”。
  5. 点击下拉菜单旁边的按钮(看起来像扳手和螺丝刀图标)。
  6. 封装标签应设置为Webm。
  7. 点击“视频编解码器”选项卡。在编码参数中,编解码器应选择为“VP8”。
  8. 在音频编解码器选项卡中,应取消选择“保留原始音轨”。编解码器应设置为“Vorbis”。
  9. 点击“保存”按钮。
  10. 重要:选择目标文件位置和名称。点击“浏览”,转到您想要转换的文件夹,并输入新文件名。如果不这样做,则VLC将无法创建您的已转换文件(至少在2.1.5版本中是这样)。
  11. 点击“开始”按钮开始转换。

转换为.ogv格式:

  1. 从菜单中选择“媒体”>“转换/保存”。
  2. 点击“添加”按钮并选择要转换的文件。
  3. 点击“转换/保存”按钮。
  4. 在 '个人资料' 下拉菜单中选择 '视频 - Theora + Vorbis (OGG)'
  5. 点击下拉菜单旁边的按钮(“编辑所选配置文件”)
  6. 封装选项卡应设置为Ogg / Ogm。
  7. 点击“视频编解码器”选项卡。在编码参数中,编解码器应选择为“theora”,如果其中包含文本,则比特率应为1000kb / s。对于较小的视频,较低的比特率可能足够。
  8. 在音频编解码器选项卡中,选择“保留原始音轨”
  9. 点击“保存”
  10. 选择目标文件位置和名称。
  11. 点击“开始”以开始转换。

如果您需要调整视频大小或裁剪视频,请先使用Handbrake将其处理为.mp4文件。在我的经验中,试图使用VLC创建调整过大小的.ogg / ogv或webm文件不会得到很好的结果。

在网页上放置视频时,我使用 VideoJs - 这使您可以非常轻松地创建带有Flash回退的html5视频,以供旧版浏览器使用。与easyhtml5video相比稍微费些工夫,但是免费使用。


22

WebM是Matroska(.mkv)的子集,因此只需使用HandBrake创建MKV文件(选择MKV容器,而非MP4)。在我看来,HandBrake是Mac上创建MP4和MKV文件的最佳工具(也适用于Windows和Linux,但我从未在那里使用过它)。通过双通编码,您可以获得可用存储空间和/或带宽的最佳质量,而HandBrake非常强大(您可以配置很多设置),但仍然是一个非常容易使用的工具(您不需要配置大多数设置,默认设置已经能为您提供非常好的结果)。

只需记住,WebM是MKV的子集,因此作为视频编解码器,请使用VP8或VP9,作为音频编解码器,请使用Vorbis或Opus。在2013年之前,WebM只有VP8和Vorbis,因此这是最兼容的组合,可以在大多数设备、浏览器和播放器上播放。在2013年,新增了更新的VP9和Opus,现在任何这些组合都是合法的。

一旦您获得了MKV文件,就可以使用ffmpeg将其转换为WebM。您可以下载已预构建的MacOS X版的ffmpg作为独立二进制文件(适用于10.9或更高版本)。您需要做的只是在终端中运行该命令:

./ffmpeg -i INPUTIFLE.mkv -c copy OUTPUTFILE.webm

就这样了。由于 -c copy 的作用,这将非常快速 (视频不会再次被转码!)。ffmpeg只是复制音频和视频数据,重新编写容器,删除在WebM中不受支持的MKV部分(例如章节不受支持)。仅进行复制意味着该转换对品质没有影响,因为没有重新压缩。

使用ffmpeg在不重新压缩的情况下在许多其他格式之间进行转换也可以工作。例如,如果您有一个实际上是MPEG4或H.264的MKV文件,可以以同样的方式将其转换为MP4文件,而不需要重新编码。您甚至可以提取视频的音频层到普通音频文件,而不会失去任何质量(例如将MP3或AAC音频提取到MP3或MPA文件中)。如果所选目标容器无法容纳源文件的数据(例如您无法将AAC音频复制到MP3文件或VP9视频复制到MP4文件中),则ffmpeg会通知您。


18
我会将那段代码更改为:
<video poster="/path/to/your/thumbnail/image.jpg" preload="meta" controls width="500"> 
    <!-- if Safari/Chrome-->  
    <source src="video/45.mp4" type="video/mp4" /> 
    <!-- if Firefox -->  
    <source src="video/45-theora.ogg" type="video/ogg" />
</video>

原因:
poster="/path/to/your/thumbnail/image.jpg"

因为您希望在用户播放视频之前显示“缩略图”。
<source src="video/45.mp4" type="video/mp4" /> BEFORE <source src="video/45-theora.ogg" type="video/ogg" />

在打开视频时,mp4格式要优先于开放格式(如webm或therora),因为在某些iOS版本中存在一个错误,如果mp4在html中列在任何其他格式之后,则根本无法播放视频(所以将其列在第一位)。

preload="meta"

因为某些iOS版本,甚至一些Safari和Chrome的版本在同一页上有许多视频时很难加载页面。preload=none或preload=meta可以帮助解决这些问题。
关于编码,Miro转换器在编码方面更好,对于转换浏览器可播放的格式(mp4、webm、theroa)更易于使用。VLC有很多选项,但如果你没有做对可能会让人感到不知所措和沮丧。Miro更像是一个拖放应用程序,并且被diveintohtml5推荐。

13

如果您正在使用ffmpeg,我发现以下命令在文件大小和质量之间达到了一个很好的平衡:

ffmpeg -i myvideo.mp4 -acodec libvorbis -aq 5 -ac 2 -qmax 25 -threads 2 myvideo.webm
你可以使用-aq-qmax参数来控制音频和视频的质量。如果你感兴趣,我写了一篇博客文章,详细介绍了一些内容:http://daniemon.com/blog/how-to-convert-videos-to-webm-with-ffmpeg/ 根据你想要为编码任务分配多少系统资源,可以调整或完全省略-threads参数。

8

1
如果你使用的是Ubuntu,可以尝试使用avconv -i 45.mp4 45.webm命令进行转换。不过我曾经在某个地方看到过说它的质量不如ffmpeg,但也值得一试。 - JamesWilson

2

尝试在最新的 macOS 上使用最新版本的 VLC 播放器播放视频,但总是会收到一些编解码器错误或者视频的部分内容被切断。

最终按照问题的第一个评论所建议的,在命令行上安装 FFMPEG 并进行转换。这样操作非常顺利。

# Install Homebrew if not done yet
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
# Install ffmpeg
brew install ffmpeg
# Convert to webm
cd ~/Downloads
ffmpeg -i myfile.mp4 myfile.webm

0
尝试这个: 在Linux中使用Libav
Installation: run command  
               sudo apt-get install libav-tools 

Video conversion command::Go to folder contains the video and run in terminal
               avconv -i oldvideo.mp4 -ar 22050 convertedvideo.webm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接