具有 hls 和杜比视界的 Shaka 包装器

Shaka packager with hls and dolby vision

我有一个带有杜比视界的 mp4,我正试图从中创建一个 HLS 流。为此,我将此 mp4 传递给 shaka 打包程序,如下所示:

packager in=dolby-vision-amaze.mp4,stream=video,segment_template=video1/$Number$.ts,iframe_playlist_name=h265_1920p/iframe1.m3u8

我可以在此处使用此命令提取音频:

packager in=dolby-vision-amaze.mp4,stream=audio,segment_template=audio1/$Number$.ts,iframe_playlist_name=h265_360p/iframe1.m3u8

但是使用视频命令我得到这个错误:

[0516/220127:INFO:demuxer.cc(89)] Demuxer::Run() on file 'dolby-vision-amaze.mp4'.
[0516/220127:INFO:demuxer.cc(155)] Initialize Demuxer for file 'dolby-vision-amaze.mp4'.
[0516/220127:ERROR:pes_packet_generator.cc(47)] NOT IMPLEMENTEDVideo codec 103 is not supported.
[0516/220127:ERROR:mp4_media_parser.cc(889)] Failed to process the sample.
[0516/220127:ERROR:packager_main.cc(554)] Packaging Error: 11 (MUXER_FAILURE): Failed to initialize PesPacketGenerator.

我试图找到指定编解码器的方法(顺便说一句,它是 h265)但无济于事。我正在使用最新的 shaka 打包程序版本 (2.6.1),它在文档中指定它支持杜比视界。

失败来自 Shaka Packager 'PesPacketGenerator::Initialize' 函数。

它检查视频编解码器是否为 h.264,如果不是 returns false,这会触发您看到的错误日志。

目前,Shaka Packager 不支持 h265 的 TS 输出格式 - 请参阅下面来自 Shaka GutHub 主页 () 的支持格式:

如果您查看回调,您会发现错误是在 Shaka 尝试生成输出流时生成的。 'MuxerFactory' 正在查看所需的输出格式并选择 'mp2t::TsMuxer',这反过来会初始化 'TSSegmenter',它会调用 'pes_packet_generator',其中会生成您在上面看到的错误。

我认为不支持的原因是对于 h265,通常推荐的 HLS 格式是 fmp4 而不是 TS。这也在一些 Shaka 问题中讨论:https://github.com/shaka-project/shaka-packager/issues/588

您可以在此处查看一些使用 fmp4 生成 HLS 文件的示例:https://shaka-project.github.io/shaka-packager/html/tutorials/dash.html#examples