EasyAVFilter代码示例之将摄像机RTSP流转成RTMP推流输出

以下是一套完整的RTSP流转RTMP推流功能的开发源码,就简简单单几行代码,就可以完成原来ffmpeg很复杂的调用流程,而且还可以集成在自己的应用程序中调用,不需要再单独一个ffmpeg的进程来调用,方法很简单:

cpp 复制代码
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "EasyAVFilterAPI.h"

#ifdef _WIN32
#pragma comment(lib,"EasyAVFilter.lib")
#endif

Easy_Handle fRTSPHandle = 0;			
int Easy_APICALL __AVFilterCallBack(void* userPtr, EASY_AV_FILTER_STATE_T status, int progress, int errCode, const char *errMsg)
{
	//各种状态的回调,例如拉流状态/推流状态/转码状态/媒体信息
	return 0;
}

int main(int argc, char** argv)
{
	// 创建EasyAVFilter实例
	Easy_Handle avFilterHandle = NULL;
	EasyAVFilter_Create(&avFilterHandle);

	// 信息回调
	EasyAVFilter_SetCallback(avFilterHandle,__AVFilterCallBack,0);

	// 将本地视频文件转成格式化的MP4或者HLS提供点播,参考命令:./ffmpeg.exe -re -rtsp_transport tcp -i rtsp://admin:admin12345@112.112.222.212:554/ch1/main/av_stream -vcodec copy -acodec aac -ac 2 -strict -2 -f flv rtmp://172.81.216.155:3519/live/IbMkUXeVR?sign=SxMk8X6VRz
	EasyAVFilter_AddInput(avFilterHandle, "rtsp://admin:admin12345@112.112.222.212:554/ch1/main/av_stream", 1);
	EasyAVFilter_AddFilter(avFilterHandle, "-vcodec copy -acodec aac -ac 2 -strict -2");
	EasyAVFilter_AddFilter(avFilterHandle, "-f flv");
	EasyAVFilter_SetOutput(avFilterHandle, "rtmp://172.81.216.155:3519/live/IbMkUXeVR?sign=SxMk8X6VRz", 0);//H.265 support

	// 输出再次验证
	char filterCommand[256] = { 0 };
	EasyAVFilter_GetFilters(avFilterHandle, filterCommand);
	printf("command: %s\n", filterCommand);

	getchar();
	EasyAVFilter_Start(avFilterHandle, 1, 8, 10);//注意,文件转码不需要循环读取,第二个参数从1改成0

	getchar();
	// 停止流程,回收EasyAVFilter对象
	EasyAVFilter_Stop(avFilterHandle);
	EasyAVFilter_Release(&avFilterHandle);

	return 0;
}

以上完整程序工程可在EasyDarwin官网下载到:www.easydarwin.org

相关推荐
ltlovezh3 天前
AAC 元数据:ADTS 与 ASC 的区别、转换和常见坑
后端·ffmpeg·音视频开发
Database_Cool_4 天前
alibabacloud-polardb-ai-assistant:让大模型成为你的数据库运维搭档
ffmpeg
ximu_polaris4 天前
ffmpeg6.1 Windows编译支持drawtext滤镜功能
ffmpeg
_oP_i5 天前
FFmpeg 如何与ai结合剪辑出效果好的视频
人工智能·ffmpeg·音视频
四方云5 天前
电销系统中FreeSWITCH桥接播放自定义振铃:被叫接听后振铃持续问题解决
ffmpeg
花花鱼6 天前
将 MP4 转为 886×1920(竖屏)使用ffmpeg处理
ffmpeg
杨云龙UP6 天前
Oracle RAC/ODA环境下如何准确查询PDB表空间已分配大小?一次说清Oracle表空间逻辑大小和ASM三副本实际占用_2026-05-19
linux·运维·数据库·sql·oracle·ffmpeg
DogDaoDao7 天前
Android 播放器开发:从零构建全功能视频播放器
android·ffmpeg·音视频·播放器·mediacodec·编解码
学Linux的语莫8 天前
FFmpeg和流媒体服务器
ffmpeg
太阳风暴9 天前
fftools/graph-FFmpeg Filtergraph 打印系统文档
ffmpeg·滤镜图