总结

作者:罗上文,微信:Loken1,公众号:FFmpeg弦外之音

通常情况下,原始数据、编码系统、封装格式之间的关系如下图:

1-1

FLV只是比较常用的封装格式之一,实际上音视频领域有非常多的封装格式,例如:MKV、RMVB、AVI、WMV等等

封装格式支持的编码格式是不一样的。例如:在2022年之前,FLV在Adobe的标准文档里面并不支持H265编码,只是民间约定了H265在FVL的封装规则,具体请看 runner365(施维)的 ffmpeg_rtmp_h265 开源项目。

如果你想知道一个封装格式支持哪些编码,可以阅读 FFmpeg 的源代码,或者尝试问GPT。

下面是FFmpeg项目的 flvenc.c 文件的部分代码,这个数组就表明了在FLV封装格式里支持哪些编码。

static const AVCodecTag flv_video_codec_ids[] = {
    { AV_CODEC_ID_FLV1,     FLV_CODECID_H263 },
    { AV_CODEC_ID_H263,     FLV_CODECID_REALH263 },
    { AV_CODEC_ID_MPEG4,    FLV_CODECID_MPEG4 },
    { AV_CODEC_ID_FLASHSV,  FLV_CODECID_SCREEN },
    { AV_CODEC_ID_FLASHSV2, FLV_CODECID_SCREEN2 },
    { AV_CODEC_ID_VP6F,     FLV_CODECID_VP6 },
    { AV_CODEC_ID_VP6,      FLV_CODECID_VP6 },
    { AV_CODEC_ID_VP6A,     FLV_CODECID_VP6A },
    { AV_CODEC_ID_H264,     FLV_CODECID_H264 },
    { AV_CODEC_ID_HEVC,     FLV_CODECID_HEVC },
    { AV_CODEC_ID_VP8,      FLV_CODECID_VP8 },
    { AV_CODEC_ID_VP9,      FLV_CODECID_VP9 },
    { AV_CODEC_ID_NONE,     0 }
};

版权所属 xianwanzhiyin.net 罗上文 2024 all right reserved,powered by Gitbook该文件修订时间: 2024-02-15 14:25:49

results matching ""

    No results matching ""