ffmpeg+easydarwin把rtmp流转换成m3u8
ffmpeg+easydarwin把RTSP流转换成m3u8ffmpeg+easydarwin把rtmp流转换成m3u8Windows安装ffmpeg安装easydarwin安装Nginx执行命令播放m3u8Linux安装ffmpeg安装easydarwin安装Nginx执行命令ffmpeg+easydarwin把rtmp流转换成m3u8最近需要对接视频监控,要在网页上播放,rtmp流需要装fla
ffmpeg+easydarwin把RTSP流转换成m3u8
ffmpeg+easydarwin把rtmp流转换成m3u8
最近需要对接视频监控,要在网页上播放,rtmp流需要装flash插件,很多浏览器都不支持了,所以需要把rtmp流转换成 m3u8 来播放
Ffmpeg地址: https://github.com/BtbN/FFmpeg-Builds/releases
easydarwin地址:https://github.com/easydarwin/easydarwin/releases
Windows
安装ffmpeg
从上面的链接下载 ffmpeg-n4.4-79-gde1132a891-win64-gpl-shared-4.4.zip
解压文件
添加环境变量 D:\install\ffmpeg-n4.4-79-gde1132a891-win64-gpl-shared-4.4\bin
安装easydarwin
从上面的链接下载 EasyDarwin-windows-8.1.0-1901141151.zip
解压文件
修改ini文件
;easydarwin使用ffmpeg工具来进行存储。这里表示ffmpeg的可执行程序的路径
ffmpeg_path=D:/install/ffmpeg-n4.4-79-gde1132a891-win64-gpl-shared-4.4/bin/ffmpeg
;本地存储所将要保存的根目录。如果不存在,程序会尝试创建该目录。
m3u8_dir_path=D:/EasyDarwinGoM3u8
如果需要保存视频到本地,可以修改这个配置为1
save_stream_to_local=1 使用后则可以进行录像查询与回放。
单击 serviceinstall-easydarwin.exe 等待安装完成如下:
打开浏览器,输入 http://127.0.0.1:10008 可以看到设备当前运行状态和推流拉流的列表
安装Nginx
下载地址如下http://nginx.org/en/download.html
下载一个稳定版本,然后解压文件
在 nginx.conf 文件里,加上一段配置
location /hls {
types{
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root html;
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
}
执行命令
这个命令是我在网上找到的cctv14的直播视频流,把它转化成rtsp流
ffmpeg.exe -i rtmp://58.200.131.2:1935/livetv/cctv14 -vcodec copy -acodec copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1/test.hls
然后再把rtsp流转换成m3u8文件,文件存在nginx的html目录下
ffmpeg.exe -i rtsp://127.0.0.1/test.hls -fflags flush_packets -max_delay 2 -hls_flags delete_segments -hls_time 2 -g 30 D:\workspace\ui-manage\html\live.m3u8
然后就可以通过 http://localhost:8080/live.m3u8 来访问视频流(这个端口号是nginx配置的端口号)
播放m3u8
可以通过下载VLC播放器来播放m3u8文件
也可以通过 https://wow.techbrood.com/fiddle/48210 这个网址,修改下m3u8文件的地址,来进行播放
也可以通过 https://www.m3u8play.com/ 这个网址,来进行播放测试
如果想在自己的项目里播放m3u8,需要在前端页面引用hls.js,下载地址
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
<script src="hls.js"></script> //下载的hls.js 文件路径
<script>
function btn_OpenHls() {
var htmlvideo = document.getElementById("videoPlay");
htmlvideo.controls = true;
var hls = new Hls();
hls.loadSource("http://localhost:8080/live.m3u8");//m3u8文件路径
hls.attachMedia(htmlvideo);
hls.on(Hls.Events.MANIFEST_PARSED, function () {
htmlvideo.play();
});
}
</script>
</head>
<body>
<button onclick="btn_OpenHls()">打开HLS视频</button>
<video id="videoPlay" width="300" height="300"></video>
</body>
</html>
这是我在自己项目里的测试情况
Linux
安装ffmpeg
下载ffmpeg
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
解压文件
tar -xvf ffmpeg-release-amd64-static.tar.xz
执行./ffmpeg 命令,查看是否安装成功
添加环境变量
vim /etc/profile
export PATH=$PATH:/usr/share/ffmpeg-4.4-amd64-static/
source /etc/profile
再执行下面命令,环境变量就生效了
Ffmpeg -version
安装easydarwin
从上面的链接下载 EasyDarwin-linux-8.1.0-1901141151.tar.gz
解压文件
tar -zxvf EasyDarwin-linux-8.1.0-1901141151.tar.gz
修改ini文件
ffmpeg_path=/usr/share/ffmpeg-4.4-amd64-static/ffmpeg
;本地存储所将要保存的根目录。如果不存在,程序会尝试创建该目录。
m3u8_dir_path=/data/EasyDarwinGoM3u8
安装命令如下:
cd /usr/share/EasyDarwin-linux-8.1.0-1901141151
./start.sh
打开浏览器,输入 http://linux机器ip:10008 可以看到设备当前运行状态和推流拉流的列表
安装Nginx
下载地址如下http://nginx.org/en/download.html
下载一个稳定版本,然后解压文件
在 nginx.conf 文件里,加上一段配置(这个和windows一样)
location /hls {
types{
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root html;
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
}
执行命令
这个命令是我在网上找到的cctv14的直播视频流,把它转化成rtsp流
nohup ffmpeg -i rtmp://58.200.131.2:1935/livetv/cctv14 -vcodec copy -acodec copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1/test.hls &
然后再把rtsp流转换成m3u8文件,文件存在nginx的html目录下
nohup ffmpeg -i rtsp://127.0.0.1/test.hls -fflags flush_packets -max_delay 2 -hls_flags delete_segments -hls_time 2 -g 30 /usr/local/openresty/nginx/html/live.m3u8 &
然后就可以通过 http://linux机器ip:8080/live.m3u8 来访问视频流(这个端口号是nginx配置的端口号)
参考链接 https://blog.csdn.net/spring0832/article/details/89677050
参考链接 https://www.cnblogs.com/psjinfo/p/10521523.html
更多推荐
所有评论(0)