如果可能,如何使用VLC将mp4转换为webm?我应该选择哪种编解码器?我需要重新编码声音吗?
我正在尝试将html5视频放在一个闪存作为后备的网站上。据我所知,它是Firefox允许的唯一格式(webm)(除非你在Windows 7 64bit上?)。 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。
感谢您的帮助!
答案 0 :(得分:24)
为了更新此答案,我不建议再使用Miro Video Converter。它曾经是我为网络创建HTML5视频的首选武器,但该程序的当前版本3存在转换为ogg theora的问题:转换后视频的质量太低,无法创建更高质量的版本使用ffmpeg命令行实用程序。
Easyhtml5video非常好,因为它会自动创建所有带嵌入代码的闪回后备视频格式,但您需要支付69美元 - 免费版本会为视频添加水印。
我正在使用VLC播放器进行视频转换。要在VLC中转换mp4文件,请执行以下操作:
转换为.webm
转换为.ogv:
如果您需要调整视频大小或裁剪视频,我建议您首先使用Handbrake对.mp4文件执行此操作。尝试使用VLC创建.ogg / ogv或webm文件的大小调整版本并不能给我带来很好的体验。
将视频放在网页上时,我会使用VideoJs - 这样您就可以非常轻松地为旧版浏览器创建带有闪回后备功能的html5视频。比easyhtml5video略多,但可以免费使用。
答案 1 :(得分: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),因为如果mp4在html中的任何其他格式之后列出,那么某些iOS版本中存在一个根本不播放视频的错误(首先列出它)。
preload="meta"
因为如果同一页面上有很多视频,某些版本的iOS甚至某些版本的Safari和Chrome都很难加载页面。 preload = none或preload = meta有助于解决这些问题。
关于编码,Miro Converter在编码方面更好,更容易用于转换浏览器可以播放的格式(mp4,webm,theroa)。 VLC有很多选择,但是如果你没有把它弄好的话可能会过度和令人沮丧。 Miro更像是一个拖放应用程序,由diveintohtml5推荐。
答案 2 :(得分:16)
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 :(得分:11)
如果您正在使用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
参数可能会被调整或完全省略,具体取决于您要为编码任务提交多少系统资源。
答案 4 :(得分:8)
ffmpeg -i 45.mp4 45.webm
答案 5 :(得分: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