# livego_demo **Repository Path**: bigshake/livego_demo ## Basic Information - **Project Name**: livego_demo - **Description**: 直播demo - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-07-02 - **Last Updated**: 2022-07-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # livego_demo ### 介绍 直播demo ### 软件架构 直播服务:视频端推流给服务器,客户端从服务器拉流 因此是三端流程:视频端(推流)+服务端(转发)+客户端(拉流) 视频端:通过工具推流,比如命令行`ffmpeg`或者`OBS`工具 服务端:livego目录下 客户端:flvjs目录下 ### 使用说明 1. 启动服务端 ``` cd livego go build ==> 生成livego可执行文件 .livego ==> 启动运行 监听端口:1935,8090,7001,7002 ``` 2. 通过`http://localhost:8090/control/get?room=movie`获取一个房间的 channelkey(channelkey用于推流,movie用于播放) 返回`{"status":200,"data":"rfBd56ti2SMtYvSgD5xAV0YU99zampta7Z7S575KLkIZ9PYk"}` 3. 视频端推流 ``` cd livego/demoflv 通过`RTMP`协议推送视频流到地址 `rtmp://localhost:1935/{appname}/{channelkey}` (appname默认是`live`), 例如: 使用 `ffmpeg -re -i demo.flv -c copy -f flv rtmp://localhost:1935/live/rfBd56ti2SMtYvSgD5xAV0YU99zampta7Z7S575KLkIZ9PYk` 推流 通过`ffmpeg`也可以将摄像头推流录制 `ffmpeg -f avfoundation -i "0" -vcodec h264 -acodec aac -f flv rtmp://localhost:1935/live/rfBd56ti2SMtYvSgD5xAV0YU99zampta7Z7S575KLkIZ9PYk` ``` 4. 获取播放地址 ``` 支持多种播放协议,播放地址如下: - `RTMP`:`rtmp://localhost:1935/{appname}/movie` - `FLV`:`http://127.0.0.1:7001/{appname}/movie.flv` - `HLS`:`http://127.0.0.1:7002/{appname}/movie.m3u8` 此时浏览器访问即直接下载,需要播放器 ``` 5. 客户端拉流 ``` cd flvjs npm install npm run dev ==> (node10运行gulp可能会有些问题,百度可以解决) 在网页上输入播放连接`http://127.0.0.1:7001/live/movie.flv`,刷新页面即可 ```