mp4转rtsp怎么实现?
可以使用live555进行
是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了标准流媒体传输,是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+ 、DV、JPEG视频和多种音频编码。同时由于良好的设计,Live555非常容易扩展对其他格式的支持。Live555已经被用于多款播放器的流媒体播放功能的实现,如VLC(VideoLan)、MPlayer。
1、先下载资源压缩包
该插件的官网
http://www.live555.com/,可以在官网进行下载,不过官网下载的比较麻烦,感兴趣的可以自己去研究一下了
这边可以直接关注公众号I am Walker
,回复live555
进行获取
下载到压缩包之后,将压缩包上传到服务器上
2、使用tar zxvf进行解压
# 解压
tar zxvf live.2015.01.19.tar.gz
# 进入目录
cd live/
# 执行配置文件
./configure
# 如果没有makefile文件,则需要进行生成
./genMakefiles
# 编译环境
make clean;make
# 进入 mediaServer 编译之后生成了live555MediaServer执行文件
cd mediaServer/
# 执行live555MediaServer服务
./live555MediaServer
3、将mp4转成264
准备一个mp4文件,
先将MP4放到live555MediaServer同个文件夹中
之后将mp4转成h264,因为目前该插件只支持这些文件格式
转换语句,将file.mp4和file.264的文件进行修改即可
ffmpeg -i file.mp4 -codec copy -bsf: h264_mp4toannexb -f h264 file.264
如果ffmpeg没有安装的话,可以参考一下我之前的文章 centos7安装ffmpeg
例如我本次是使用
ffmpeg -i 5a25efed5af52422f8d386a253c9fd3f.mp4 -codec copy -bsf: h264_mp4toannexb -f h264 test.264
之后就生成test.264
4、访问
拼接rstp地址
rtsp://ip:554/test.264 访问即可,如果554被占用了,则使用8554
如果是云服务器,记得开放对于的端口
可以使用vlc进行访问
ffmpeg安装
1、进行git地址
https://github.com/BtbN/FFmpeg-Builds/releases
如果下载较慢,可以在公众号中进行获取,关注 I am Walker
,回复ffmpeg
即可
2、点击下载此版本
3、上传到服务器,并解压
tar xvJf ffmpeg-master-latest-linux64-gpl.tar.xz
4、进入到解压后的文件的bin目录
cd ffmpeg-master-latest-linux64-gpl/bin
# 使用ldd指令
ldd ffmpeg
之后可以看见,有个环境是缺失的
问题:“libmvec.so.1: cannot open shared object file: no such file or directory”
解决方案:去
1、安装依赖
yum install gcc gcc-c++
2、下载编译库 官方下载很慢
wget http://ftp.gnu.org/gnu/glibc/glibc-2.25.tar.gz
# 镜像下载 速度会比官方快很多
wget https://mirrors.sjtug.sjtu.edu.cn/gnu/glibc/glibc-2.25.tar.gz
# 3、编译
tar xvzf glibc-2.25.tar.gz
cd glibc-2.25
../configure --prefix=/usr
mkdir build
cd build
# 第一次编译的时间会比较长
make -i
make install
5、添加环境配置
vi /etc/profile
# 在文件末尾添加 这里的路径根据自己安装ffpemg的位置,修改后保存
export PATH=$PATH:/opt/video/ffmpeg-master-latest-linux64-gpl/bin
# 之后重载文件
source /etc/profile
6、查看版本
使用ffmpeg -version查看版本,如果结果出来则代表ok了