2011-06-22 30 views
1

我正在寻找能够自动化编码我的视频以进行HTML5回放的方法。 Miro转换器做的很好,但我期望自动化这个过程。用于编码HTML5视频的API

什么是可用于实现编码的优秀付费/免费API?

回答

2

虽然我不知道任何编码您需要的任何服务,但您可以相当简单。为了全面支持所有html5浏览器的网络,您需要以(至少)2种不同格式进行编码。

h264由IE9,Safari,Mobile Safari(iPhone)和Android支持。 (我认为Chrome可能支持这一点,但未来可能不支持政治)

Theora支持Opera,Mozilla(Firefox)和Chrome。

您可以使用ffmpeg编码为这两种格式,所以完全可以自行创建批量转换器。

这里有几个命令让你开始:

ffmpeg -i input -pass 1 -vcodec libx264 -preset fast -b 512k -threads 0 -f mp4 -an -y /dev/null && ffmpeg -i [INPUT FILE] -pass 2 -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -preset fast -b 512k -threads 0 output.mp4

这将做2遍编码的MP4/AAC H264。使用-b选项播放更高和更低的比特率(和文件大小)。 -ab选项是你的音频,128k应该很多,但如果你发现它听起来不好,你可以尝试使用256k。

Theora设置起来有点棘手,但是有一个很好的工具叫做ffmpeg2theora,它可以使转换过程变得更简单。它可以在这里找到:http://v2v.cc/~j/ffmpeg2theora/

用法比ffmpeg更简单一些,如:ffmpeg2theora -v 7 -a 3 [INPUT FILE],其中-v是视频质量(10),-a是音频质量(10)。

在这两个示例中,用您的输入替换[INPUT FILE],例如myvideo.avi

我推荐使用这两种工具来获得它们的感觉,它们都是强大的,一旦你掌握了它的使用非常简单。

一旦你想为它创建一个批处理文件,最简单的方法之一就是编写一个快速的shell脚本。下面是一个例子:

#!/bin/bash 

# super simple batch video script 

ffmpeg -i input -pass 1 -vcodec libx264 -preset fast -b 512k -threads 0 -f mp4 -an -y /dev/null && ffmpeg -i $1 -pass 2 -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -preset fast -b 512k -threads 0 output.mp4 && ffmpeg2theora -v 7 -a 3 $1 

将它保存为encode.sh

然后,使其可执行:chmod 755 encode.sh

,并用路径到视频参数运行它:sh encode.sh "/path/to/video.avi"

在脚本中的唯一的东西,可能是不熟悉的有:

#!/bin/bash - 这告诉sh在bash shell中运行这个脚本。

$1 - 这将是传递给bash shell的第一个参数。在上述情况下,视频文件路径。

&& - 这告诉bash等到最后一个命令完成,然后继续。你可以用这种方式把许多命令链接起来。

希望有所帮助。

+1

这是什么libfaac?我收到未知的编码器错误。另外,我猜测第1遍的输出应该在第2遍输出。我们在这里怎么做。 – JewelThief

0

FFMpeg是Miro所基于的命令行实用程序,因此您可能需要从此处开始。

+0

感谢kinakuta,你知道是否有任何高流量服务使用此用户生成的内容? – JewelThief

+0

FFMpeg非常受欢迎,几乎可以用于每个用户生成的内容网站。据称甚至YouTube使用它(虽然YouTube自己未证实 - 这里的文章:http://multimedia.cx/eggs/googles-youtube-uses-ffmpeg/)。唯一受欢迎的其他开源编码器是MEncoder。 – Jesse

0

Zencoder是一种可以处理所有HTML5格式的云端编码API。

+0

很想探索这个。感谢分享。 – JewelThief

0

http://www.bitcodin.com可以生成MPEG-DASH和HLS内容,这些内容可以通过不同的浏览器在HTML5中本地播放。有关内容生成的综合教程:http://www.bitcodin.com/blog/2015/02/create-mpeg-dash-hls-content-for-amazon-s3-and-cloudfront/

可以使用基于HTML5的JavaScript播放器(例如http://www.dash-player.com)来播放HTML5。还有一个教程如何使用x264 + MP4Box生成MPEG-DASH内容:http://www.dash-player.com/blog/2014/11/mpeg-dash-content-generation-using-mp4box-and-x264/