我们想尝试H.265编码视频流,但我们使用的视频云服务器供应商仅提供RTMP+FLV上传端口。我做了一些搜索工作,似乎音频视频不支持H.265视频流。但是服务器供应商声称支持H.265,并要求我们将编解码器ID修改为12。
所以我想知道:
- 什么是编解码器 ID?它是音频视频- 特定标记来识别各种流格式?
- 是否可以非正式支持H.265被包裹音频视频?
- 我们正在使用
ffmpeg
流式传输,可以使用吗ffmpeg
?
答案1
什么是编解码器 ID?它是 FLV 专用的标记,用于识别各种流格式吗?
是的。阅读FLV 文件规格有关详细信息,请参阅第 8 页的比特流格式的视频数据部分。
是否有可能非官方支持将 H.265 包装在 FLV 中?
是的,但它不是由 Adobe 定义的,因此兼容性会受到影响——FLV 格式不像 ISOBMFF 那样具有可扩展性。随着基于 Flash 的流媒体和相关技术的消亡,H.265 支持也不太可能正式添加。但我对 Adobe 在这方面的计划不太了解。
我们正在使用 ffmpeg 进行流式传输,可以使用 ffmpeg 来实现吗?
没有。请求在 FLV 中支持 HEVC/H.265,有点垃圾的感觉。显然,中国对流媒体(和 CDN 架构)的要求与业内其他领域正在转向的(HLS 或通过 HTTP 进行 DASH 流媒体)有所不同。但底线是 FFmpeg 不会添加对自定义、非标准化扩展的支持。
答案2
@jiandingzhe 有硬件编码器可以通过 RTMP 生成 AMF 格式的 HEVC/h.265。我是 Red5 的维护者,我们接受他们的流,在不久的将来,它将在商业产品中实现。我对您的两个问题有答案:
- 我们和硬件编码器使用的 H.265 编解码器 ID 为 12,如下所示:HEVC((byte) 0x0c) athttps://github.com/Red5/red5-server/blob/50a2c339ba027566c192b3bbf1c6714ca25df799/io/src/main/java/org/red5/codec/VideoCodec.java#L22
- 是的,但是播放器需要知道如何从 flv 播放它;我应该在接下来的几周内让读者和作家为 Red5 工作。
如上所述,我是维护者,这在我的个人资料中很清楚。项目仓库可以在这里找到https://github.com/Red5/red5-server
亚马逊上的硬件编码器:https://www.amazon.com/stores/ESZYM/page/BD2C2740-E01B-4312-8293-4DB83D948D51?ref_=ast_bln