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
分享到:
相关推荐
ffmpeg 1.2 版本,绝对支持librtmp
ffmpeg_with_x264_librtmp_源码+编译脚本+生成库,可在Linux/Android中使用 想自己学习编译过程的,请参照博客:https://hellogoogle.blog.csdn.net/article/details/119618962
自己写的一个很稳定的程序,使用librtmp 库 拉取 rtmp, 然后提取视频保存为flv 或者 h264的工程,vs2008
ffmpeg源码及所需第三方库,链接所需的librtmp库。编译步骤可以查看本人博客。
最近在做一个基于RTMP推流的项目,将实现的代码整理了供大家参考,推流环境使用ffmpeg进行推流,nginx做流媒体服务器,VLC进行拉流。
在Linux 服务器上,使用Android NDK17 、 FFmpeg4.2.2、librtmp混合编译的Android arm64-v8a架构的ffmpeg文件,可直接在Android项目中导入并编写相应的代码实现播放rtmp流媒体功能。 若有armeabi-v7a(32位)编译需求...
参考资料,主要实现包括利用librtmp实现rtmp流的接收,并保存成flv格式视频;利用ffmpeg接口实现rtmp流保存成.ts, .mkv, .flv, .mp4格式视频; mp4v2源码及封装
包括三个文件ffmpeg.exe、ffplay、sdl.dll,编译时加入了librtmp库
下载librtmp源码,在GitHub上下载: 可以用git下载: git clone https://github.com/yixia/librtmp.git 编译librtmp脚本: #!/bin/bash NDK_ROOT=/root/ndk/android-ndk-r17c CPU=arm-linux-androideabi TOOLCHAIN...
This is a FFmpeg Win64 shared build by Kyle Schwarz. Zeranoe's FFmpeg Builds Home Page: This build was compiled on: Dec 30 2014, at: 17:29:04 FFmpeg version: 2.5.2 libavutil 54. 15.100 / 54. 15.100 ...
使用librtmp拉流aac,使用ffmpeg解码为pcm,最后通过sdl播放音频,带有一个简易版本的操作界面,不过存在一些bug,此刻还没办法解决暂停时如何播放静音,如果有好的办法能一块交流
通过wireshark抓ffmpeg的包一点点改动,最终可以在red5和斗鱼上推流了。 没怎么写过python,有不恰当的地方请包涵。 上代码: # -- coding: utf-8 -- # http://blog.csdn.net/luhanglei import picamera import ...
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheo ra --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-...
This is a FFmpeg Win64 shared build by Kyle Schwarz. Zeranoe's FFmpeg Builds Home Page: <http://ffmpeg.zeranoe.com/builds/> This build was compiled on: Dec 30 2014, at: 17:29:04 FFmpeg version: 2.5.2 ...
这是一个在vs2019成功编译的静态库,里面包含编译所需的头文件和源文件,以及编译成功的librtmp.lib文件,对于头文件和源文件中会导致编译出错的地方已经进行修改。
This FFmpeg build was configured with: --disable-static --enable-shared --enable-gpl --enable-version3 --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --...
纯C++代码,读取H264文件到内存推流到RTMP流媒体服务器,关键使用libRTMP库封装成RTMP协议格式!方便初学者
Coreaudio采集音频+librtmp推流aac,能够实现windows7音频aac扬声器音频采集和推流rtmp,使用的是vs2015建的项目
安装librtmp包需要依赖环境较多,机器上已经安装了python2.7版本,安装librtmp包之前需要先安装依赖环境。 1、安装gcc和依赖包 yum install gcc* python-devel libffi-dev* -y 2、安装librtmp 从git上下载源码:...
rtsp rtmp ffmpeg librtmp ts mp4 flv 直播