关于ffmpeg推流,如何推流一个文件夹里的所有视频或者多个视频?

关于ffmpeg推流,如何推流一个文件夹里的所有视频或者多个视频?,第1张

如果你想推流一个文件夹里的所有视频,你可以使用通配符(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'

这样,你就可以使用两条命令推流多个视频了。

分两种情况来作答

第一种:不使用CDN的情况下,25个用户

在不使用CDN时,所有用户的连接视频源站访问,此时假设源站有200M带宽,上行速率200 / 8 = 25M/s(服务器吃的是上行带宽),25 / 1 = 25 个人,就是最大支持25个人同时使用1M/s的速度访问网站。 计算方式有些过于粗糙,具体的承受能力还要看视频长度和大小,视频传输方式,是否压缩等因素而定。

第二种:在使用CDN的情况下,250个用户

在使用CDN时,用户请求的就是CDN边缘节点,压力就在CDN节点上了,对于源站的压力就很小了。 CDN在抓取源站数据后会缓存到自己边缘节点上,用户的访问就不会到源站服务器上了。 假设CDN边缘节点有200M带宽,同时有10个边缘节点,承受能力就是200 * 10 / 8 / 1 = 250 人,而源站此时可能只需要10 - 20 M的带宽就足够了。目前市面上几大CDN厂商都拥有上千个节点,而且带宽也有千兆级别的。那承载能力就可想而知了,就看你能出多少钱了。

最近需要做实时录屏并把视频推流到RTSP服务器,具体流程是抓取屏幕内容(bitmap),并把bitmap转化为YUV,接着把YUV编码成H264,再把H264码流推到RTSP服务器;把采集到的PCM编码为AAC,再把AAC推流至RTSP服务器。

看了雷神的一篇文章: 最简单的基于FFmpeg的推流器(以推送RTMP为例) ,他是把本地的视频文件推流至RTMP服务器,并不符合我的要求。

接着我找到另一篇文章: ffmpeg实现H264压缩并且推流至RTSP ,这篇文章只有图像编码,并没有音频编码,并且推流之后并没有播放成功。

我综合上面两位大佬的思路,和查找一些资料实现了这个功能。

RTSP服务器使用的是 HappyTime 的免费试用版本。

我抓到的bitmap是BGRA格式的,所以使用的图像格式是 AV_PIX_FMT_BGRA cropImage 是含有rgba图像的数组

调用:

由于我是实时抓取的屏幕, frame_yuv->pts 设为当前的时间戳,以保证能正常播放。

调用:

调用:

其中pcm_buff是包含pcm数据的数组

使用udp传输时传到1400多帧就断开链接了,原因不明,所以改用使用tcp协议传输

延迟有1.5秒左右

参考:

https://blog.csdn.net/leixiaohua1020/article/details/39803457

https://blog.csdn.net/yunge812/article/details/79345584

https://trac.ffmpeg.org/wiki


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存