Docker容器从MP4或HLS预打包MPEG-DASH

为了简化我和我的同事,我创建了一个Docker容器,该容器可用于从MP4文件或HLS URL预打包MPEG DASH。 我认为也许其他人也可能会发现这很有用。

要使用它,您首先需要在计算机上安装Docker或使用AWS或Google Cloud上的实例。 在我们的实验室中,我们有一台EC2服务器安装了我们的S3存储桶,并运行了Docker引擎,然后可将其用于创建MPEG DASH包。 例如,我们使用它来创建使用Orah 4h摄像机创建的360实时视频的点播剪辑。

安装Docker后,您将下载两个简化了用法的帮助程序脚本。 它们分别称为mp4todashhlstodash ,其中mp4todash从一组MP4文件创建MPEG DASH,而hlstodash下载HLS视频片段,重新混合为MP4文件,然后从这些MP4文件创建MPEG DASH包。

下载并安装mp4todash脚本,例如以下示例(Linux):

curl -L https://github.com/Eyevinn/docker-2dash/releases/download/v0.0.3/mp4todash > /usr/local/bin/mp4todash 

其中v0.0.3可以更改为最新发行版本。 要从一组MP4文件创建MPEG DASH包,您只需运行:

 mp4todash example-1920-4500.mp4 example-720-1500.mp4 

如果这是您第一次运行此脚本,它将首先从我们的Docker存储库下载Docker映像。 完成容器后,您将在名为“输出”的文件夹中找到MPEG DASH软件包。 将其放在您的服务器上,即可开始流式传输。

要从HLS流创建MPEG DASH,请先下载并安装hlstodash脚本:

 curl -L https://github.com/Eyevinn/docker-2dash/releases/download/v0.0.3/hlstodash > /usr/local/bin/hlstodash 

然后运行:

 hlstodash http://example.com/file/master.m3u8 

引擎盖下

Docker容器称为eyevinntechnology / 2dash,它基于已安装Bento4的Ubuntu Linux。 python脚本是Docker容器的入口点,并且在容器运行时执行。 此python脚本首先运行Bento4命令mp4fragment从提供的MP4文件创建碎片化的MP4文件。 然后,它运行Bento4软件包中包含的mp4dash脚本以创建MPEG DASH软件包。

您可以在我们实验室的开源软件中心中找到此Docker容器的来源,欢迎您提供任何建议或建议。

/乔纳斯·比尔梅(JonasBirmé)

JonasBirmé是Eyevinn Technology的解决方案架构师。 一家瑞典咨询公司,专门从事流媒体,VR和游戏。