V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CDSer
V2EX  ›  分享发现

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

  •  1
     
  •   CDSer · 2016-03-16 11:04:33 +08:00 · 1783 次点击
    这是一个创建于 3200 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 ,注册即可免费试用。

    CDSer
        1
    CDSer  
    OP
       2016-03-16 11:04:53 +08:00
    i[GPN]( )
    vibbow
        2
    vibbow  
       2016-03-17 00:24:31 +08:00   ❤️ 1
    https://pic.vsean.net/di/ZWPL/QQ 截图 20160316162504.png
    vibbow
        3
    vibbow  
       2016-03-17 00:24:42 +08:00
    CDSer
        4
    CDSer  
    OP
       2016-03-17 10:02:29 +08:00
    @vibbow 你好!是内部服务器解析的原因,已修复~感谢您的意见~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2158 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 85ms · UTC 16:13 · PVG 00:13 · LAX 08:13 · JFK 11:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.