# media_transcoding **Repository Path**: bingtangcue/media_transcoding ## Basic Information - **Project Name**: media_transcoding - **Description**: 媒体转码模块,通过ffmpeg c API实现视频H264和H265转换,音频PCMA,PCMU,AAC转换 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-08 - **Last Updated**: 2025-08-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # media_transcoding ### 介绍 媒体转码模块,通过ffmpeg c API实现视频H264和H265转换,音频PCMA,PCMU,AAC转换 接收如:RTSP/RTMP GB-28181等媒体流,提取媒体流中的音视频放入转码模块中实现转码,重新封装成流媒体协议转发 ### 软件架构 通过ffmpeg c API实现音视频流式编解码转换 该项目通过文件来mock流式传输,mock分两步: 1. 读取视频文件,分割成n个nalu 2. for循环分批处理,mock流式传输 ### 功能支持 - [X] 视频编码 - [X] H264 -> H265 - [X] H265 -> H264 - [X] 音频编码 - [X] pcma -> aac - [X] aac -> pcma - [X] pcmu -> pcma - [X] pcma -> pcmu ### 编译教程 依赖第三方库: ffmpeg和jsoncpp mac系统直接执行 sh build.sh(jsoncpp和ffmpeg已编)即可 linux系统和windows系统如下: 1. 替换include中的ffmpeg和jsoncpp头文件 2. 替换lib中的ffmpeg和jsoncpp动态链接(下载源码重新编译) 3. 修改cmakeLists中的链接目录 [jsoncpp源码](#https://github.com/open-source-parsers/jsoncpp) [ffmpeg源码](https://ffmpeg.org/) ### 使用说明 该项目中包含测试文件: 1. input.h264和input.h265,纯视频裸流文件 2. input.g711a和input.aac,编码为pcma和aac的纯音频文件 配置文件conf/config.json: { "inputFilename": "input.aac", "inputType": "aac", "outputFilename": "output.g711a", "outputType": "pcma" } transType为转码类型,配置如下: 1. inputType: avc1, outputType: hevc; 为 264->265; 2. inputType: hevc, outputType: avc1; 为 265->264; 3. inputType: pcma, outputType: aac; 为 pcma->aac 4. inputType: aac, outputType: pcma; 为 aac->pcma 5. inputType: pcmu, outputType: pcma; 为 pcmu->pcma 6. inputType: pcma, outputType: pcmu; 为 pcma->pcmu 启动命令:./media_transcoding ### 参与贡献