文档章节

在FFMPEG中使用libRTMP的经验

abcijkxyz
 abcijkxyz
发布于 2016/08/06 11:55
字数 388
阅读 24
收藏 0

FFMPEG在编译的时候可以选择支持RTMP的类库libRTMP。这样ffmpeg就可以支持rtmp://, rtmpt://, rtmpe://, rtmpte://,以及 rtmps://协议了。但是如何使用ffmpeg支持RTMP协议还是有一定的学问的。本文总结一下部分经验。

ffmpeg接受一个字符串的输入方式,比如:“rtmp://xxxx live=1 playpath=xxx ...”这种的输入形式,即第一个字符串是rtmp的url,然后加一个空格,然后再附加一些参数。附加的参数的格式形如“playpath=xxxx”这种形式。这个乍一看让人觉得有点不习惯。因为一般的输入只包含一个字符串,比如说一个流媒体的url或者是文件的路径,不会采用“url+空格+参数1+参数2+...”的形式。

例如,当需要打开一个直播流的时候,可以用如下字符串(这里连接的是中国教育电视台1频道(网络直播)):

rtmp://pub1.guoshi.com/live/newcetv1

当需要用ffmpeg保存RTMP直播流媒体的时候:

ffmpeg -i "rtmp://pub1.guoshi.com/live/newcetv1 live=1" -vcodec copy -acodec copy ttt.flv

当需要用ffplay播放RTMP直播流媒体的时候:

ffplay "rtmp://pub1.guoshi.com/live/newcetv1 live=1"

在使用FFMPEG类库进行编程的时候,也是一样的,只需要将字符串传递给avformat_open_input()就行了,形如(这里连接的是香港电视台频道(网络直播)):

char url[]="rtmp://live.hkstv.hk.lxdns.com/live/hks live=1";
avformat_open_input(&pFormatCtx,url,NULL,&avdic)

注:librtmp支持的参数:http://rtmpdump.mplayerhq.hu/librtmp.3.html




本文转载自:http://blog.csdn.net/leixiaohua1020/article/details/14228879

abcijkxyz
粉丝 63
博文 6196
码字总数 1876
作品 0
深圳
项目经理
私信 提问

暂无文章

react-nativeAndroid打包报错:Daemon: AAPT2 aapt2-3.2.1-4818971-osx Daemon #0

笔者在工作开发任务中,最近在进行Android打release包测试时,遇到了如下报错,鼓捣了好久(甚是郁闷),终于解决了。 ReactNative版本环境如下 问题描述 直接使用react-native run-android运行...

凌宇之蓝
32分钟前
1
0
每天挂机10小时最低赚17美元|能挂机赚钱

2017 年 01 月 05 日 每天挂机10小时最低赚17美元|能挂机赚钱 每 天 挂 机 10 小 时 最 低 赚 17 美 元 ( 骗 你 我 不 是 人 ) , 就 像 挂 Q Q一样,一天挂十小时 , 最低每天赚 17 美金! 教 ...

linjin200
48分钟前
1
0
Class 文件结构

https://www.cnblogs.com/honghuzidelaoren/p/3622021.html

Java搬砖工程师
今天
3
0
未分类资料

$ Inside the Linux Kernel 与知乎出产 一张漫画看懂Linux系统结构

十万猛虎下画山
今天
1
0
Android人脸识别Demo竖屏YUV方向调整和图片保存

本博客包含三个常用方法,用于盛开Android版人脸识别Demo中竖屏使用时送入yuv数据,但一直无法识别的情况。 1.首先可以尝试顺时针旋转90°或270°,然后送入识别SDK。 2.旋转方向后依然无法识...

是哇兴哥棒棒哒
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部