在Ubuntu 14.04 64bit下编译安装rtmpdump并调试输出
来源:互联网 发布:微微一笑的网络收视率 编辑:程序博客网 时间:2024/06/06 14:29
2011年那会儿就开始研究rtmp, 但是后来很快又换了公司转作Android移动浏览器项目,就一直没有机会
继续进行下去.现在因为工作需要,我又重新捡使起来, 继续进行中断了几年的工作.下面记录下我的安装
实录,以备以后参考.
1.从官网
http://rtmpdump.mplayerhq.hu/
下载rtmpdump 2.4源码包
git clone git://git.ffmpeg.org/rtmpdump
cd rtmpdump
为了得到调试信息,这里简单修改一下文件夹rtmpdump和librtmp的Makefile文件,添加-g参数,注意去掉优化参数-O2那项
在rtmpdump的Makefile中的
OPT=-O2
CFLAGS=-Wall -g $(XCFLAGS) $(INC) $(DEF) $(OPT)
在librtmp的Makefile中的
CFLAGS=-Wall .... -g
2.安装相关依赖类
需要用到的依赖库是zlib, openssl库,使用如下命令安装
sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo apt-get install zlib1g-dev
可以先查看可用的安装包
sudo apt-cache search openssl
通过阅读Makefile文件,我发现rtmpdump需要引用的动态库如下
-lz -lssl -lcrypto -lrtmp -lpthread
make后会生成4个可执行文件, 分别是rtmpdump,rtmpsvr, rtmpsuck, rtmpgw, 其中pthread直会在rtmpsvr, rtmpsuck, rtmpgw这3个程序中用到.
3.编译安装
make
sudo make install
首先要保证相关库已经成功安装到/usr/local/lib下面
再要保证/usr/local/lib在/etc/ld.so.conf配置文件中,然后
sudo ldconfig
来更新动态库缓存
检查rtmpdump所有依赖库是否都引用成功
ldd rtmpdump
4.打开一个rtmp直播流或者可以点播文件的rtmp服务器
我这里使用srs来提供一个rtmp直播流,参见上篇博文,得到如下直播流地址
rtmp://demo.srs.com:1935/live...vhost...players/demo
为了保证rtmp直播流的有效性,你可以点击"播放RTMP"按钮进行播放来判断.
开启rtmpdump打印模式,在命令行输入如下命令
rtmpdump -r rtmp://demo.srs.com:1935/live...vhost...players/demo -V -z -v -o out.flv
我们将会看到如下rtmp client和server之间交互的打印信息,同时在当前目录下会生成out.flv文件,使用其他的播放器可以播放.
5.rtmpdump命令选项说明
-o 指定输出文件名称
-q 禁止所有的命令行输入
-V Verbose命令输出
-z Debug级别的输出
-h 打印所有的命令行选项
6.gdb调试
为了详细了解rtmp协议,在熟读该协议文档的基础上, 你可以使用gdb来调试交互信息, 同时阅读rtmpdump的源码实现了
参考文献
[1].rtmpdump/librtmp/librtmp.3.html
[2].rtmpdump/rtmpgw.8.html
[3].rtmpdump/rtmpdump.1.html
- 在Ubuntu 14.04 64bit下编译安装rtmpdump并调试输出
- 在Ubuntu 14.04 64bit下编译安装rtmpdump并调试输出
- Ubuntu下安装rtmpdump
- Ubuntu 14.04 64bit上编译安装MonaServer并测试
- 在Ubuntu 14.04 64bit上安装MongoDB并测试
- 在ubuntu 14.04 64bit安装mongoDB并测试
- 在Ubuntu 14.04 64bit上编译安装xbt tracker
- Caffe在Ubuntu 14.04 64bit 下的安装
- 在虚拟机下安装ubuntu 10.04 64bit,并修改root用户密码
- ubuntu下编译openjdk 并在eclipse调试hotspot
- 在Ubuntu 14.04 64bit上编译并研究State Threads网络线程库源码
- 在Ubuntu 14.04 64bit上编译并研究State Threads网络线程
- 在Ubuntu 14.04 64bit上编译并研究State Threads网络线程
- 在Ubuntu 14.04 64bit上编译并研究State Threads网络线程
- 在Ubuntu 14.04 64bit上编译并研究State Threads网络线程库源码
- rtmpdump在vs2015下的编译
- 在Ubuntu 14.04 64bit上安装Valgrind并检查内存泄露
- 在Ubuntu 14.04 64bit上编译安装Crtmpserver trunk svn 811版本!
- Hello World!
- vs添加lib等依赖项
- 怎样用捷速PDF编辑器修改PDF文档
- 字符统计
- apache设置不同端口监听不同目录
- 在Ubuntu 14.04 64bit下编译安装rtmpdump并调试输出
- ceph中的序列化
- Integer.getInteger和Integer.valueOf区别
- Environment 类
- 16进制字符串转为10进制
- Eval相关用法
- [UIApplication sharedApplication].keyWindow 添加视图无效,解决方案。
- Android Http 简单介绍
- Android_面试题