下面介绍如何在Mac上搭建流媒体服务器,以便后续的自己研究的项目或者demo向服务器上进行推流
首先需要安装brew,brew是一款管理软件的第三方平台,安装的方式也很简单,请自行查阅安装方式
执行下面2句命令,即可安装rtmp推流的nginx服务器
执行完后,可以查看ngix安装在哪里
可以看到M1 是安装在这个目录下/usr/local/etc/nginx
打开这个目录,可以看到有个nginx.conf文件,这里就是服务器的一个配置文件,如果支持rtmp,则里面的内容会有一个rtmp的json
这个json说明:
1.你本地的nginx服务器会监听1935端口号,
2.服务器会创建一个mytv的程序
后续你可以向这个地址进行推流,并且进行拉流播放
后面我们会使用ffmpeg向这个地址推流
rtmp://localhost:1935/mytv/room
并且用vlc拉取这个地址的流进行播放
执行命令,即可启动nginx服务器
验证是否启动成功,只需要在浏览器中访问下以下链接
在浏览器地址栏输入: http://localhost:8080
出现Welcome to nginx ,代表nginx安装成功了。
打开配置文件 /usr/local/etc/nginx/nginx.conf
这里推的是flv流,可以正常推,这里需要注意的是服务器地址一定要写正确,我的nginx.conf里application配置的是mytv,所以路径就是mytv,room则是随便写都行,代表向程序mytv下的room文件推流
然后电脑上打开vlc这个播放器软件 点击File---->Open Network 在弹出来的框中选择Network然后输入URL:
验证时,推流的文件最好搞大点,不然一下推完了,你才去拉取播放,则播放不了,因为这是实时的
vlc使用如下
3.点击播放即可
可以看到左边是画面,右边是ffmpeg在推流
参考: https://www.jianshu.com/p/cf74a34af15d
我是看了这个教程进行安装的,但是实际过程中发现了不少问题https://blog.tomhuang2000.com/archives/572/
https://www.bilibili.com/video/BV1SJ411k7v2?spm_id_from=333.337.search-card.all.click
他这个教程 一会自己下openssl等源码编译 一会又直接yum install 虽然大致流程是这样 但版本的不对应 会导致编译不通过 我觉得是yum install的版本太新了,而编译的nginx是1.8的老版本不对应所导致的 换成1.19就可以编译了
编译报错 https://blog.csdn.net/weixin_48033662/article/details/122004967
我尝试用上述方法解决 结果又报了新的错误啥openssl里面啥东西找不到
我感觉是版本不一致的问题
然后我拉了最新的nginx 1.19的版本 再用下面的命令编译 成功了
./configure --add-module=../nginx-rtmp-module
make &&make install
Docker方式安装感觉会比较快
https://blog.csdn.net/yun_bao_2144899870/article/details/108199504?utm_medium=distribute.pc_relevant.none-task-blog-2 default baidujs_baidulandingword~default-0.pc_relevant_antiscanv2&spm=1001.2101.3001.4242.1&utm_relevant_index=3
参考:
https://blog.csdn.net/weixin_43793181/article/details/116499874
https://blog.csdn.net/qq_38040638/article/details/120676351
如果你想推流一个文件夹里的所有视频,你可以使用通配符(wildcard)来匹配文件夹中的所有视频。例如,你可以使用 -i /path/to/folder/*.mp4 来匹配文件夹中所有的 MP4 视频文件。如果你想推流多个视频,你可以使用 -i 参数多次指定视频文件的路径。例如,你可以使用 ffmpeg -re -i video1.mp4 -i video2.mp4 -vcodec libx264 -acodec aac -f flv rtmp://localhost:1935/rtmplive/home 来推流 video1.mp4 和 video2.mp4 这两个视频。
你也可以使用 -f concat 参数来将多个视频文件合并成一个输入源,然后使用 -i 参数指定合并后的视频文件。这样,你就可以使用单个命令推流多个视频。例如:
ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4
ffmpeg -re -i output.mp4 -vcodec libx264 -acodec aac -f flv rtmp://localhost:1935/rtmplive/home
其中,list.txt 是一个文本文件,其中包含了要合并的视频文件的列表。每一行的格式为 file '/path/to/video.mp4'。例如:
file '/path/to/video1.mp4'
file '/path/to/video2.mp4'
file '/path/to/video3.mp4'
这样,你就可以使用两条命令推流多个视频了。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)