VLC:如何从 mp4 转换为 webm

Posted

技术标签:

【中文标题】VLC:如何从 mp4 转换为 webm【英文标题】:VLC: How to convert from mp4 to webm 【发布时间】:2012-03-23 20:36:09 【问题描述】:

如果可能,如何使用 VLC 从 mp4 转换为 webm?我应该选择什么编解码器?我需要重新编码声音吗?

我正在尝试将 html5 视频放在使用 flash 作为后备的网站上。据我了解,这是 Firefox 允许的唯一格式(webm)(除非您使用的是 Windows 7 64 位?)。 Theora 似乎可以工作,但据我了解它有点旧,而且它需要一段时间才能正确渲染图片并且不提供缩略图:(

<video controls >  
    <!-- 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,如果它能让某人更轻松的话。

感谢您的帮助!

【问题讨论】:

ffmpeg -i 45.mp4 45.webm 【参考方案1】:

只是为了更新这个答案,我不建议再使用 Miro Video Converter。它曾经是我为网络创建 HTML5 视频的首选武器,但该程序的当前版本 3 在转换为 ogg theora 时存在问题:转换后的视频质量太低,无法创建更高质量的版本使用 ffmpeg 命令行实用程序。

Easyhtml5video 非常棒,因为它会自动创建所有带有 Flash 回退和嵌入代码的视频格式,但您必须为此支付 69 美元 - 免费版本会为视频添加水印。

目前我正在使用 VLC 播放器进行视频转换。要在 VLC 中转换 mp4 文件,我执行以下操作:

转换为 .webm

    从菜单中选择媒体 > 转换/保存。 单击“添加”按钮并选择要转换的文件 点击“转换/保存”按钮 在“个人资料”下拉菜单中选择“视频 - VP80 + Vorbis (Webm)” 单击下拉菜单旁边的按钮(“编辑所选配置文件” - 看起来像扳手+螺丝刀图标) 封装选项卡应设置为 Webm。 单击“视频编解码器”选项卡。在编码参数中,编解码器应选择为'VP8'。 在“音频编解码器”选项卡中,应取消选择“保留原始音轨”。编解码器应设置为“Vorbis” 点击“保存” 重要:选择目标文件位置和名称。单击浏览器,转到您希望转换后的文件名进入的文件夹,然后输入新的文件名。如果您不这样做,VLC 将不会创建您转换后的文件(无论如何都不会在 2.1.5 版本中) 点击“开始”开始转换。

转换为 .ogv:

    从菜单中选择媒体 > 转换/保存。 单击“添加”按钮并选择要转换的文件 点击“转换/保存”按钮 在“个人资料”下拉菜单中选择“视频 - Theora + Vorbis (OGG)” 点击下拉菜单旁边的按钮(“编辑所选配置文件”) 封装选项卡应设置为 Ogg/Ogm。 单击“视频编解码器”选项卡。在编码参数中,编解码器应选择为“theora”,如果您有文本,则比特率应为 1000kb/s。较低的比特率可能适合较小的视频。 在“音频编解码器”选项卡中,选择“保留原始音轨” 点击“保存” 选择目标文件位置和名称。 点击“开始”开始转换。

如果您需要调整视频大小或裁剪视频,我建议您首先使用 Handbrake 对 .mp4 文件执行此操作。根据我的经验,尝试使用 VLC 创建 .ogg/ogv 或 webm 文件的大小调整版本不会给您带来很好的结果。

将视频放到网页上时,我使用VideoJs - 这使您可以非常轻松地为旧版浏览器创建带有 Flash 后备的 html5 视频。比 easyhtml5video 稍微多一点工作,但它可以免费使用。

【讨论】:

【参考方案2】:

WebM 只是 Matroska (.mkv) 的一个子集,因此只需使用 HandBrake 创建一个 MKV 文件(选择 MKV 容器,而不是 MP4)。恕我直言,HandBrake 是在 Mac 上创建 MP4 和 MKV 文件的最佳工具(也适用于 Windows 和 Linux,但我从未在那里使用过)。使用两遍编码,您可以获得可用存储空间和/或带宽的最佳质量,并且虽然功能非常强大(您可以配置很多设置),HandBrake 仍然是一个非常简单的工具(您不需要配置大部分设置,已经默认值会给你很好的结果)。

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

获得 MKV 后,使用 ffmpeg 将其转换为 WebM。您可以将ffmpg pre-built for MacOS X 作为独立二进制文件下载(适用于 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 会通知您。

【讨论】:

【参考方案3】:

我会将该代码更改为:

<video poster="/path/to/your/thumbnail/image.jpg" preload="meta" controls > 
    <!-- 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 Converter 更擅长编码,并且更容易用于转换浏览器可以播放的格式(mp4、webm、theroa)。 VLC 有很多选择,但如果你没有做对,可能会让人不知所措和沮丧。 Miro 更像是一个拖放应用程序,受到diveintohtml5 的推荐。

【讨论】:

【参考方案4】:

如果您使用的是 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 参数可能会被调整或完全省略,具体取决于您要为编码任务提交多少系统资源。

【讨论】:

【参考方案5】:
ffmpeg -i 45.mp4 45.webm
通过@YumYumYum

【讨论】:

或者如果你在 Ubuntu avconv -i 45.mp4 45.webm 上——虽然我在某处读过质量与 ffmpeg 不一样,不确定,但值得一试。【参考方案6】:

试试这个:: 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

【讨论】:

以上是关于VLC:如何从 mp4 转换为 webm的主要内容,如果未能解决你的问题,请参考以下文章

如何使用.mp4,webm,3gp格式从视频生成缩略图

FFMPEG hwaccel 将 WEBM 转换为 MP4 视频失败:找不到编解码器参数

HTML5 视频:ffmpeg 编码的 MP4 不在任何浏览器中播放(虽然在 VLC 中播放)

视频转换后如何命名输出文件与输入文件相同但扩展名不同? [复制]

sh 使用HomeBrew在OS X上安装FFMPEG以将Mp4转换为WebM

环境配置—ROS bag数据记录转换为mp4视频