#GIC+docker#如何利用 GPN 实现稳定的音视频跨网传输?

2016-03-16 11:04:33 +08:00
 CDSer

iGPN

GIC+docker#如何利用首都在线 GPN 实现稳定的音视频跨网传输?

Vulcan

作品介绍:

利用稳定的跨网资源,在 GPN 内网内实现音视频跨网的传输、保存以及在公网上的播放,并实现所用功能的容器化。

实现方式:

在音视频 TS 文件组播和单播模块,参照利用了 tsplay 的实现。

在接收组播单播流模块,主要使用源码用 C 编写的 GStreamer 技术,用到了其中库的实现。

软件集成到同一个容器里面,主要用到了 Dockerfile ,生成可用 image vulcan/gstreamer:0.0.2 。

如何使用:

前期准备一个 TS 视频文件,或者有对应视频流的组播地址。

视频内容从北京单播到洛杉矶的服务器:
docker run -d --net=host -v /root/movie:/movie vulcan/gstreamer:0.0.2 tsplay /movie/hanzhan.ts 10.10.0.4:7777 – loop

在洛杉矶接收单播流并单播回到北京:
docker run -d --net=host vulcan/gstreamer:0.0.2 gst-launch-1.0 udpsrc uri=udp://10.10.0.4:7777 ! queue ! udpsink host=10.10.0.3 port=7776

在北京把内容放到公网上:
docker run -d --net=host vulcan/gstreamer:0.0.2 gst-launch-1.0 udpsrc uri=udp://10.10.0.3:7776 ! queue ! tcpserversink host=101.251.245.2 port=7775

网络视频流保存到本地:
docker run -d --net=host vulcan/gstreamer:0.0.2 gst-launch-1.0 udpsrc uri=udp://10.10.0.3:7776 ! filesink location=xxx.ts

本地使用 VLC 播放器演示播放效果。

实现功能:

视频文件的单播
根据需求需要将 ts 格式的文件顺序的单播到另外一台设备,采用了成熟的 tsplay 软件,实现视频流稳定的输出。
网络视频流的接收、保存。 对于流式的文件接收,采用的是 GStreamer 多媒体框架。使用 UDP 的传输方式,最大限度的实现视频的流畅、不花屏。
功能组件的容器化。 实现了所有功能的容器化。在 Docker Hub 鲜有关于音视频相关的稳定镜像,希望我们能为社区贡献微薄之力。
总体实现流程。 TS 视频文件--->北京设备单播到洛杉矶设备--->洛杉矶接收单播信号并单播回北京--->北京设备接收并组播到公网、保存。

重点难点:

音视频文件的处理十分依赖系统,系统粘性很大,而服务器的类型却十分难以统一,故而把所有的依赖打包到一个容器中,实现一次构建、随处运行。

视频的传输最难处理的就是网络的不稳定,而我们可以依赖首都在线 GPN 跨网的内网传输,实现高效和低故障的视频流传输。

Docker 相关方面的技术, Docker 相关的高级使用,感谢社区提供的帮助。

关于 GPN:

Global Private Network ,全球私有网络。

针对用户多地部署的需求,首都在线 GPN 服务提供这些点之间的内网连接服务。 GPN 服务是由首都在线全球云环网所承载的, 该网络是由首都在线建设的多环冗余架构的传输网络。使用 GPN 服务,用户分布在全球各地的云节点即具备了内网通讯能力。

首都在线的 GIC ( Global Interconnected Cloud ,全球多点分布式一体化云平台)就是基于 GPN 实现的全球私有网络服务提供的跨界连接的云平台。

想了解更多关于首都在线 GIC 和 GPN 的相关内容,可以访问
www.capitalonline.net ,注册即可免费试用。

1786 次点击
所在节点    分享发现
4 条回复
CDSer
2016-03-16 11:04:53 +08:00
i[GPN]( )
vibbow
2016-03-17 00:24:31 +08:00
https://pic.vsean.net/di/ZWPL/QQ 截图 20160316162504.png
vibbow
2016-03-17 00:24:42 +08:00
CDSer
2016-03-17 10:02:29 +08:00
@vibbow 你好!是内部服务器解析的原因,已修复~感谢您的意见~

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

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

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

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

© 2021 V2EX