尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

RTMP 世界里的“身份证”——CodecID 与 FourCC

发布时间:2026/9/28 20:54:28

资讯中心
01
ARTICLE

RTMP 世界里的“身份证”——CodecID 与 FourCC

RTMP 世界里的“身份证”——CodecID 与 FourCC
目标理解 RTMP 为什么需要 CodecID搞懂 FourCC 与 CodecID 的区别看懂ParseAudioCodec / ParseVideoCodec的设计意图故事开场凌晨两点你的直播服务器收到一个 RTMP 推流。数据里只有一堆字节播放器怎么知道这是 H.264 还是 H.265答案藏在CodecID里。核心知识什么是 CodecIDRTMP / FLV 协议规定的“编码格式编号”例如7 H.2640xC H.265FourCC 是什么国际标准ISO/IEC 14496-12例如avc1、hvc1、av01为什么需要“翻译”RTMP 不认 FourCC只认 CodecID代码中ParseVideoCodec就是“翻译官”源码精读func ParseVideoCodec(name codec.FourCC) VideoCodecID { switch name { case codec.FourCC_H264: return CodecID_H264 case codec.FourCC_H265: return CodecID_H265 case codec.FourCC_AV1: return CodecID_AV1 } return 0 }常见问题为什么 RTMP 不用 FourCC​历史原因 节省带宽。RTMP 诞生时 FourCC 尚未统一且 1 字节 CodecID 比 4 字节 FourCC 更紧凑。代码示例package main import ( fmt m7s.live/v5/pkg/codec m7s.live/v5/pkg/codec/rtmp ) func main() { testCases : []codec.FourCC{ codec.FourCC_H264, codec.FourCC_H265, codec.FourCC_AV1, codec.FourCC_MP4A, codec.FourCC_OPUS, } for _, fourcc : range testCases { videoCodec : rtmp.ParseVideoCodec(fourcc) audioCodec : rtmp.ParseAudioCodec(fourcc) fmt.Printf(FourCC: %s\n, string(fourcc[:])) fmt.Printf( - VideoCodecID: %d (%s)\n, videoCodec, videoCodec) fmt.Printf( - AudioCodecID: %d (%s)\n, audioCodec, audioCodec) fmt.Println() } }运行结果FourCC: avc1 - VideoCodecID: 7 (h264) - AudioCodecID: 0 (unknow) FourCC: hvc1 - VideoCodecID: 12 (h265) - AudioCodecID: 0 (unknow) FourCC: av01 - VideoCodecID: 13 (av1) - AudioCodecID: 0 (unknow) FourCC: mp4a - VideoCodecID: 0 (unknow) - AudioCodecID: 10 (aac) FourCC: opus - VideoCodecID: 0 (unknow) - AudioCodecID: 12 (opus)总结CodecID 是 RTMP 的“内部工牌”FourCC 是国际标准的“身份证”翻译函数让两种体系可以共存
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。