FFmpeg推流环境的区别
📅 2026/7/1 1:44:54
👁️ 次浏览
首先注意RTSP推流地址以“rtsp://”开头且RTSP地址的默认端口号为8554。而RTMP推流地址以“rtmp://”开头且RTMP地址的默认端口号为1935。其次注意FFmpeg从6.1开始对RTMP协议做了增强支持主要是支持HEVC、VP9和AV1等编码格式通过RTMP协议进行推流所以建议将编译环境的FFmpeg版本升级到6.1或者更高版本。二、FFmpeg推流代码的适配FFmpeg推流代码对于RTSP地址和RTMP地址主要有下列两点适配区别1、调用avformat_alloc_output_context2函数分配音视频文件封装实例的时候第三个输入参数对于RTSP地址而言要填rtsp对于RTMP地址而言要填flv。比如以下代码通过判断推流地址的协议类型来决定avformat_alloc_output_context2的第三个参数要填何值。int ret 0; // 分配音视频文件的封装实例注意rtmp协议的第三个参数填flvrtsp协议的第三个参数填rtsp if (strstr(dest_name, rtmp) ! NULL) { ret avformat_alloc_output_context2(out_fmt_ctx, NULL, flv, dest_name); } else { ret avformat_alloc_output_context2(out_fmt_ctx, NULL, rtsp, dest_name); } if (ret 0) { av_log(NULL, AV_LOG_ERROR, Cant alloc output_file %s.\n, dest_name); return -1; } av_log(NULL, AV_LOG_INFO, Success open push url %s.\n, dest_name);2、调用avformat_alloc_output_context2函数之后还要依据推流地址的协议类型来决定是否接着调用avio_open函数打开输出流对于RTSP地址而言不必调用avio_open对于RTMP地址而言必须调用avio_open。具体的判断与调用代码如下所示// 打开输出流注意rtsp推流不要调用avio_open但rtmp推流要调用avio_open if (strstr(dest_name, rtmp) ! NULL) { ret avio_open(out_fmt_ctx-pb, dest_name, AVIO_FLAG_READ_WRITE); if (ret 0) { av_log(NULL, AV_LOG_ERROR, Cant open output_file %s.\n, dest_name); return -1; } }按照以上两点代码修改了《FFmpeg开发实战从零基础到短视频上线》随书源码第十章的推流程序代码chapter10/pushvideo.c后先按照之前的文章《详解MediaMTX的推拉流》启动电脑本地的流媒体服务器MediaMTX再执行下面的编译命令。gcc pushvideo.c -o pushvideo -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib -lavformat -lavdevice -lavfilter -lavcodec -lavutil -lswscale -lswresample -lpostproc -lm编译完成后执行以下命令启动测试程序期望把2018.mp4推给RTMP协议的推流地址rtmp://127.0.0.1:1935/stream。./pushvideo ../file/2018.mp4 rtmp://127.0.0.1:1935/stream接着打开另一个MSYS窗口同样进入该书第十章的源码目录chapter10执行下面的编译命令。gcc pullvideo.c -o pullvideo -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib -I/usr/local/sdl2/include -L/usr/local/sdl2/lib -lsdl2 -lavformat -lavdevice -lavfilter -lavcodec -lavutil -lswscale -lswresample -lpostproc -lm编译完成后执行以下命令启动测试程序期望从http://127.0.0.1:8888/stream/index.m3u8拉取视频流并弹窗播放。./pullvideo http://127.0.0.1:8888/stream/index.m3u8然后果真弹出一个SDL窗口正在播放从HLS服务拉取的视频画面说明修改后的推流代码成功支持了RTMP协议。
如何轻松获取全网小说资源:阅读APP书源完整配置指南 【免费下载链接】Yuedu 📚「阅读」自用书源分享 项目地址: https://gitcode.com/gh_mirrors/yu/Yuedu
还在为找不到想看的小说而烦恼吗?还在为各个小说APP的广告和付费模式头疼吗&a…
📅 2026/7/1 1:44:54
面向切面编程(AOP)和面向对象编程(OOP)是两种不同的编程范式,它们各自解决不同类型的问题,并且通常可以互补使用而不是冲突。OOP 关注的是对象和它们的交互,强调的是数据和行为的封装。
AOP关注…
📅 2026/7/1 1:44:54
基于STM32单片机智能浇花 土壤湿度计控制系统 自动灌溉 大棚2(设计源文件万字报告讲解)(支持资料、图片参考_降重降ai)功能说明: 土壤湿度水泵自动手动声光报警 版本一:
STM32F103C8T6单…
📅 2026/7/1 1:44:54
jflash.exe 执行时候,JLinkDevices.xml里面的FLM文件路径没有加对,导致FLM信息没有读取到错误的配置信息:<Device><ChipInfo Vendor"Maxscend" Name"MXD2710APP" Core"JLINK_CORE_CORTEX_M33" WorkRA…
📅 2026/7/1 2:59:09
CMake常用内置变量一、项目信息变量二、目录路径变量三、编译器相关变量四、构建类型变量五、系统平台变量六、输出路径变量七、查找相关变量八、安装相关变量九、其他常用变量一、项目信息变量
变量名说明示例PROJECT_NAME当前项目名称message("项目名: ${PROJECT_NAME}…
📅 2026/7/1 2:59:09
在贵阳准备婚纱照那段时间,我最大的困惑其实不是“拍得好不好看”,而是——
到底哪家说的“实景拍摄”是真的实景?还是只是棚景换个背景布?
看了十几家之后,我才发现一个现实:
很多人拍完才知道,…
📅 2026/7/1 2:59:09
行业痛点:AI智能体落地为何总差一口气2026年,AI智能体系统已从概念验证全面进入业务深水区,但多数企业在部署后仍被三重困境反复折磨。系统与原有IT架构的集成周期远超预期,多个项目在数据打通阶段就消耗了团队主要精力。定制化开…
📅 2026/7/1 2:59:09
引言 2026年的工业空气净化市场正经历一场深刻的范式转移。随着半导体、新能源、精密制造等行业对生产环境洁净度的要求从“达标”转向“极致稳定”,空气净化设备的角色已从单一的物理过滤单元,进化为车间良率控制的核心壁垒。在此背景下,单纯…
📅 2026/7/1 2:59:09
文章目录3X-UI:一个面板管所有代理协议1、 这玩意儿是干嘛的2、 支持哪些协议和传输方式3、 用户管理能细到什么程度4、 其他功能5、 怎么装6、 系统兼容性3X-UI:一个面板管所有代理协议
3x-ui 在 GitHub 上已经拿到 41,602 Star 了。
这是一个开源的 …
📅 2026/7/1 2:57:09
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/1 0:00:39
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/1 0:00:39
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/1 0:00:39
6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…
📅 2026/6/30 10:04:37
引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…
📅 2026/6/30 6:54:54
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/1 0:00:39
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/1 0:00:39
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/1 0:00:39