如何在nginx服务器上实现多媒体流的录制和转码

如何在nginx服务器上实现多媒体流的录制和转码,第1张

1、首先需要说明的是,不能用exec命令。他会在客户端推流结束的同时自动终止调用的外部程序,结果就是最后ffmpeg无法进行完整的编码。该命令只适合将接到的流转推到其他地址。

2、应该使用exec_record_done配合record命令使用。即在录制结束之后自动对已录制的文件进行转码操作得到MP4文件。根据是否使用record_interval命令又有两种不同的情况。

2A、若不使用record_interval,则会在推流停止后(即record完全停止后)才进行转码,在这之前得不到任何输出

2B、若使用record_interval,即可设置每隔一段时间就重新开始录制,结合record_append on命令,可确保最后录制的视频都在一个文件中,否则就会给每段录制都生成一个单独的文件。使用这两个命令之后,转码也会相应地每隔一段时间就进行一次,但最后都输出(覆盖)到同一个文件中。优点是能近乎“实时”地进行转码,缺点是会重复调用ffmpeg,占用系统资源。

3、需要注意的是,以上两种方法最后得到的转码文件(的时长)是相同的。

4、nginx.conf配置示例

[html] view plain copy

application hls {

live on

hls on

record all

record_path /home/zhanghui/test

#record_interval 10s

#record_append on

hls_path /tmp/app

hls_fragment 5s

# convert recorded file to mp4 format

exec_record_done '/usr/local/bin/ffmpeg' -y -i /home/zhanghui/test/livestream.flv -vcodec libx264 -f mp4 /home/zhanghui/test/test_record.mp4 2>>/home/zhanghui/test/test_record.log

}

1、先去VLC软件的官网下载软件。

2、然后一路next,安装完毕之后

3、打开“媒体->流”选项

4、添加上要播放的avi,再点击串流,表示流媒体播放

5、再点击下一步,这里我们以UDP形式播放,再点击旁边的添加,这里是重要的一步,IP地址填写,你要推送到的客户端的IP地址,所以这个服务器,和这个IP最好处于同一网段。

6、选择转码,格式h264和MP3(TS),下一步

7、点击流,这里服务器就配置完成了

8、客户端,作如下配置就好

流媒体服务器就是把视频设备(如大锅信号、有线信号、DVD,VCD,摄像机,监控头等)的视频信号采集到服务器,供网络访问。能够像Web服务器发布HTML文件一样发布流媒体文件和从摄像机、视频采集卡等设备传来的实况流,从而用户可以使用视频播放器收看这些媒体文件。

具体参考流媒体服务器的应用场景


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/160407.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-23
下一篇2023-03-23

发表评论

登录后才能评论

评论列表(0条)

    保存