ffmpeg推流rtmp的参数设置

ffmpeg针对rtmp协议的参数

参数类型说明
rtmp_app字符串RTMP 流发布点,又称 APP
rtmp_buffer整数客户端 buffer 大小(单位:毫秒),默认为 3 秒
rtmp_conn字符串在 RTMP 的 Connect 命令中增加自定义 AMF 数据
rtmp_flashver字符串设置模拟的 flashplugin 的版本号
rtmp_live整数指定 RTMP 流媒体播放类型,具体如下:
any:直播或点播随意
live:直播
recorded:点播
rtmp_pageurl字符串RTMP 在 Connect 命令中设置的 PageURL 字段,其为播放时所在的 Web 页面 URL
rtmp_playpath字符串RTMP 流播放的 Stream 地址,或者称为密钥,或者称为发布流
rtmp_subscribe字符串直播流名称,默认设置为 rtmp_playpath 的值
rtmp_swfhash二进制数据解压 swf 文件后的 SHA256 的 hash 值
rtmp_swfsize整数swf 文件解压后的大小,用于 swf 认证
rtmp_swfurl字符串RTMP 的 Connect 命令中设置的 swfURL 播放器的 URL
rtmp_swfverify字符串设置 swf 认证时 swf 文件的 URL 地址
rtmp_tcurl字符串RTMP 的 Connect 命令中设置的 tcURL 目标发布点地址,一般形如 rtmp://xxx.xxx.xxx/app
rtmp_listen整数开启 RTMP 服务时所监听的端口
listen整数与 rtmp_listen 相同
timeout整数监听 rtmp 端口时设置的超时时间,以秒为单位

ffmpeg使用示例

推流

使用rtmp_app、rtmp_playpath参数示例:

ffmpeg -re -i test.mp4 -c copy -f flv -rtmp_app live -rtmp_playpath steam rtmp://live.pingos.io

等价于

ffmpeg -re -i test.mp4 -c copy -f flv rtmp://live.pingos.io/live/stream

看出使用技巧了吗,其他参数的值也可以用同样的方式指定,是不是很简单!

给rtmp地址添加参数

一般的推流和拉流地址长这样,rtmp://xxx.xxx.xxx.xxx/app/streamname

但是很多时候我们需要服务器做一些权限验证,就要求rtmp连接时携带token,我们就可以通过以下两种方式将token带给服务器。

ffmpeg -re -i test.mp4 -c copy -f flv -rtmp_app live -rtmp_playpath "steam?token=xxx" rtmp://live.pingos.io
ffmpeg -re -i test.mp4 -c copy -f flv "rtmp://live.pingos.io/live/stream?token=xxx"

QQ交流群:697773082

QQ交流群:697773082

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Qt FFmpeg是一个使用FFmpeg库来实现推流功能的Qt设计的推流软件。通过Qt界面,它可以实现桌面捕获、摄像头捕获等功能,并使用FFmpeg的API将数据推流RTMP服务器上。另外,你还提到了一个使用VS2017、Qt和FFmpeg开发的视频播放工具,它可以播放RTSP流、RTMP流和UDP流。基于这些信息,我可以假设你想要了解如何使用Qt和FFmpeg来进行RTMP推流。 要使用Qt和FFmpeg进行RTMP推流,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Qt和FFmpeg,并且已经将这两个库正确地配置到你的开发环境中。 2. 创建一个Qt项目,导入FFmpeg的头文件和库文件。 3. 在你的Qt项目中,使用FFmpeg的API来实现推流功能。你可以使用avformat_open_input()函数打开RTMP流,并使用avcodec_find_decoder()函数找到适合的编码器。 4. 设置推流参数,例如RTMP服务器地址、流媒体格式、视频编码格式、音频编码格式等。你可以使用avformat_alloc_output_context2()函数来分配输出格式上下文,并通过设置相应的参数来配置它。 5. 通过调用avio_open2()函数打开RTMP流的输出端口。 6. 将你要推流的数据(例如音频、视频等)通过FFmpeg的API写入输出端口。 7. 最后,记得在程序结束时释放相关的资源,例如关闭RTMP流和释放上下文等。 以上是使用Qt和FFmpeg进行RTMP推流的基本步骤。根据你的需求,你还可以添加其他功能,例如音频、视频的采集和编码等。希望这些信息对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值