关于直播视频流处理后再转播的技术架构选型

2022-03-15 07:48:53 +08:00
 mikulch

最近有一些需求都跟这个有关,以前都没做过这种实时视频流的处理,都是 crud boy 。目前后端语言是一定要选 java 的。 但是对于这一块基本上一片空白。大家有什么推荐的教程或者书籍么?网上自己搜了下,没什么特别满意的比较全面的教程。

3862 次点击
所在节点    Java
44 条回复
RedBeanIce
2022-03-15 08:19:39 +08:00
好像有什么 rtmp 还有什么鬼技术,不记得,等一个大佬回复
smilzman
2022-03-15 08:29:51 +08:00
1. 使用云服务,有转码服务
2. 用 ffmpeg
3. 搜索 Java 流媒体
q1angch0u
2022-03-15 08:40:29 +08:00
chenbokais3
2022-03-15 08:41:25 +08:00
gstreamer rtsp
des
2022-03-15 08:56:07 +08:00
估计问的是多流合并、水印这种东西,不是纯转码
我也蹲一个答案
des
2022-03-15 08:57:26 +08:00
顺便多说一句,这个方面的 Java 是基本不要想了
andyskaura
2022-03-15 09:19:23 +08:00
ffmpeg 将直播流切片保存在本地 然后加工后 接着用它推出去 具体工作 ffmpeg 都能干 你衔接好流程就行
ybnsjl
2022-03-15 09:49:32 +08:00
ffmpeg + rtmp + nginx
Huelse
2022-03-15 09:49:58 +08:00
Ant Media
Huelse
2022-03-15 09:51:50 +08:00
darkengine
2022-03-15 10:01:01 +08:00
你们直播的音视频流处理都是自己做的吗?我们项目用的商用 SDK ,视频流处理这些都带了
LLaMA2
2022-03-15 10:01:52 +08:00
需求不明,无法给到您更好的建议,
hu8245
2022-03-15 10:03:03 +08:00
搞这个的,分推拉,推的话,国内主要用 rtmp ,( youtuebe twitch 也是),你可能需要在服务器段进行转封装或转码,这个想简单的话就 ffmpeg 了,或者有音视频开发资源的话,自己去开发,成本比较大。拉流就随意了,DASH/HLS 都支持 low latency ,还是有现成的方案的。主要还是在服务器这里,没有 C/C++ 技术栈去深入的话,基本上就只能用现成的。
mikulch
2022-03-15 10:10:10 +08:00
@smilzman

@andyskaura
@darkengine
@hu8245
感谢各位大佬,我这边的需求其实是这样。
有一个直播的 hls 格式来源,是个视频流的地址。这个地址可以通过 java 封装的 ffmpeg 抓取到帧,然后需求需要把每一帧的图片,通过另外一个图片 APi 做一下处理,然后重新转码封装成 rtmp 格式的视频流推到流媒体服务器。

现在流媒体服务器用的国产的 ssr 。遇到的问题,是拉流端 即 -> 抓取直播 hls 数据,解码成图片,然后 api 处理后重新编码封装成视频格式这里,非常的耗费 cpu 资源。

一台服务器起码吃掉 80%,不知道是否有可能可以解决?
mikulch
2022-03-15 10:22:07 +08:00
@ye4tar
@ybnsjl
@des
@q1angch0u

谢谢各位大佬,详细内容已经补充到了问题中。
locoz
2022-03-15 10:24:41 +08:00
@mikulch #14 每一帧的图片调一次 API 做一次处理再重新拼成视频…这么处理吃 CPU 是必然的。建议描述一下这个图片 API 做了什么事,看看有没有什么更合适的解决办法。
microxiaoxiao
2022-03-15 10:26:09 +08:00
编解码不吃 CPU 就吃 GPU 你这个方案可以有两个可能改善的效果。解码成 raw 数据,然后 api 处理 raw 数据,再编码,可以少编码解码过程。其次就是用硬件 GPU ,降低 CPU 使用。
andyskaura
2022-03-15 10:28:01 +08:00
@mikulch 加一块垃圾显卡 GPU 加速 能显著提升效率
lakehylia
2022-03-15 10:33:11 +08:00
软解软编非常吃 CPU ,上显卡吧。四路泰坦~~ [狗头]
raysonlu
2022-03-15 10:36:07 +08:00
云服务不香?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/840368

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX