Code Monkey home page Code Monkey logo

p2p-live-trans's Introduction

hlsuploader

Can convert any H264/HEVC video stream to HLS,and synchronizing send to mutiple servers using (http-dav) method,Such as nginx

Purpose: this project is used for live-p2p resource transmisstion.

Related projects: https://github.com/FFmpeg/FFmpeg

API control: 传输查询接口

1.查询所有节目信息

HTTP GET /api/query_allchannelinfo

{ "node_name":"trans_first_1", channels:[ { "channel_name":"test1", "channel_url":"/live/zhongwen/CCTV1/playlist", "channel_bandwidth":3513, "channel_info":"Video=h264 1920x1080 25r 3100k Audio=aac 44.1 240k", "current_ingest_url":"http://192.168.1.53:1052/test1.ts", "ingest_urls":[ "http://192.168.1.53:1052/test1.ts", "http://192.168.1.52:1052/test1.ts", "http://192.168.1.54:1052/test1.ts" ], "post_servers":[ "192.168.3.135:1354", "192.168.3.132:1354", "192.168.3.131:1354", ] }, { "channel_name":"test2", "channel_url":"/live/zhongwen/CCTV2/playlist", "channel_bandwidth":3513, "channel_info":"Video=h264 1920x1080 25r 3100k Audio=aac 44.1 240k", "current_ingest_url":"http://192.168.1.53:1052/test2.ts", "ingest_urls":[ "http://192.168.1.53:1052/test2.ts", "http://192.168.1.52:1052/test2.ts", "http://192.168.1.54:1052/test2.ts" ], "post_servers":[ "192.168.3.135:1354", "192.168.3.132:1354", "192.168.3.131:1354", ] } ] }

2.查询当前节目传输情况 url=(base64)

HTTP GET /api/query_channel_transinfo&url=L2xpdmUvemhvbmd3ZW4vQ0NUVjEvcGxheWxpc3Q= (/live/zhongwen/CCTV1/playlist)

{ "node_name":"trans_first_1", "channel_name":"test1", "channel_url":"/live/zhongwen/CCTV1/playlist", "fregment_duration":"10s", "fregment_window":3, "fregment_extra_window":2,

"channel_bandwidth":3513,
"channel_info":"Video=HEVC 1920x1080 25r 3100k Audio=aac 44.1 240k",
"current_ingest_url":"http://192.168.1.53:1052/test1.ts",
"stream_bandwidth":514041,
"recv_stream_duration":51233,
"recv_video_frames":2351231,
"recv_audio_frames":2351231,
"recv_frame_bytes":1234515,
"ingest_urls":[
            "http://192.168.1.53:1052/test1.ts",
            "http://192.168.1.52:1052/test1.ts",
            "http://192.168.1.54:1052/test1.ts"
],
"upload_servers":[
    {
        "server_address":"192.168.1.53:2193",
        "upload_fregment":2813,
        "upload_failed_fregment":153,
        "upload_fregment_list":2812,
        "upload_failed_fregment_list":3,
        "current_delay":15,
        "upload_file_max_time":"25083ms",
        "upload_file_min_time":"1320ms",
        "upload_file_avg_time":"2518ms"
    },
    {
        "server_address":"192.168.1.54:2193",
        "upload_fregment":2813,
        "upload_failed_fregment":153,
        "upload_fregment_list":2812,
        "upload_failed_fregment_list":3,
        "current_delay":15,
        "upload_file_max_time":"25083ms",
        "upload_file_min_time":"1320ms",
        "upload_file_avg_time":"2518ms"
    }
]

}

传输临时控制接口(不可保存配置)

HTTP POST /api/channel_api_control

添加节目

{ "cmd":"add_channel", "channel_name":"test1", "channel_url":"/live/zhongwen/CCTV1/playlist", "fregment_duration":10000, "fregment_window":3, "fregment_extra_window":2, "ingest_urls":[ "http://192.168.1.53:1052/test1.ts", "http://192.168.1.52:1052/test1.ts", "http://192.168.1.54:1052/test1.ts" ], "upload_servers":[ { "node_name":"us_edge_1", "address":"192.168.1.23:2193/1052:1062" }, { "node_name":"us_edge_2", "address":"192.168.1.24:2193/1052:1062" } ] }

删除节目

{ "cmd":"del_channel", "channel_name":"test1", "channel_url":"/live/zhongwen/CCTV1/playlist" }

资源调度控制接口 unified_resource_controller

HTTP POST /api/ingest_control_cmd&key=axlkjhvalksqwoiuaddfvc

1.同步节目信息 { "cmd":"sync_channels", "upload_channels":[ { "channel_name":"test1", "channel_url":"/live/zhongwen/cctv1/playlist", "fregment_duration":10000, "fregment_window":3, "fregment_extra_window":2, "ingest_urls":[ "/opt/Passengers.2016.1080p.H265.mp4" ], "upload_servers":[
{ "node_name":"us_edge_1", "address":"192.168.10.182:8080" } ] } ] }

p2p-live-trans's People

Contributors

skyglance avatar

Stargazers

 avatar  avatar Craig Campbell avatar

Watchers

 avatar

Forkers

jillchen

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.