# flv实时封装的c语音实现 **Repository Path**: public-rtos/flv ## Basic Information - **Project Name**: flv实时封装的c语音实现 - **Description**: 最近做项目,嵌入式系统上,把h.264的裸流封装成flv格式。查了很多文档之后,自己做了这个库。 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2022-08-05 - **Last Updated**: 2024-04-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: http-flv, flv-metadata ## README # flv实时封装的c语音实现 #### 介绍 最近做项目,嵌入式系统上,把h.264的裸流封装成flv格式。查了很多文档之后,自己做了这个基于libevent的flv库。 目前仅支持h.264,支持g.711-u格式的音频。 可以封装成http-flv格式进行实时传输,也可以保存到flv文件。 该库配合libevent,直接把http请求转成http-flv流,用vlc软件能够直接播放。 #### 软件架构 用open_flv,指定模式打开一个句柄,是保存文件还是发送http-flv。 产生新的视频裸流时,每次一包,调用send_video函数进行发送(或保存文件)。新的音频流调用send_audio进行发送文件 需要注意的是,发送音频视频的缓冲区,必须多申请4个字节,作为本库的防竞争码插入,否则会崩溃。例如发送一个33562字节的包,前四个字节防竞争码\0\0\0\1,紧跟着是数据,那么缓冲区必须是33570字节,数据长度是33566。 结束时调用close_flv即可完成。 #### 安装教程 直接下载源代码 #### 使用说明 调用open->send->close即可 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/public-rtos/flv](https://gitee.com/public-rtos/flv) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)