0

我正在创建AWS上托管的视频流应用程序。我有AWS S3上托管的mp4。为了流式处理视频文件,我想将mp4转换为MPEG-DASHmpd)格式并存储在不同的AWS S3存储桶中。我将通过AWS cloudfront在代码转换后的mpd文件中使用dash.jsvideogular在客户端进行流式传输。视频流:MPEG-DASH,AWS cloudfront,dash.js

我面临的问题是如何将mp4转码为mpd(不使用AWS转码器,有点贵)。我正在考虑利用AWS Lambda来侦听源S3存储桶并将其输出到不同的S3存储桶。但无法找到一个模块进行编码转换(将其转换为Lambda函数)。有没有人完成它,并想提供一些见解?

回答

3

mpd文件实际上只是一个基于文本的索引文件 - 它包含视频和音频流的URL,但没有媒体本身。

用于MPEG DASH的媒体存储在分段中,用于分段mp4格式的mp4。

如果你想从mp4自己创建分段mp4,那么你可以看一些工具来做到这一点,甚至用作批处理的一部分。

一个例子是mp4Dash(https://www.bento4.com/documentation/mp4dash/)。您可以在此链接上看到示例,用于转换单个mp4文件,或转换单个文件的多个比特率版本,在使用DASH进行Adaptve比特率流式传输时更典型(ABR - 允许客户端选择比特率下一段,以根据当前网络状况)下载:

单MP4输入文件

mp4dash video.mp4 

的MP4文件的多比特率设置

mp4dash video_1000.mp4 video_2000.mp4 video_3000.mp4 

另一个例子是mp4Box:https://gpac.wp.imt.fr/mp4box/dash/

它没有价值,因而实际上有多种方式以流在AWS DASH - 弹性转码可以创建MPEG DASH流,你可以从S3存储和数据流,你可以使用云锋和服务如Unified Streaming或Wowza等。流式传输非常复杂,因此如果这需要大量重要服务,则可能需要查看这些服务并查看是否有可满足您需求的选项或组合,而不会太昂贵。

+0

链接丢失 –

+0

哎呀!添加了链接,也是另一个例子。这也是一个有用的博客文章:https://bitmovin.com/mp4box-dash-content-generation-x264/ – Mick