Home
Softono
g

gwuhaolin

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
2

Software by gwuhaolin

gwuhaolin/livego
Open Source

gwuhaolin/livego

<p align='center'> <img src='./logo.png' width='200px' height='80px'/> </p> [中文](./README_cn.md) [![Test](https://github.com/gwuhaolin/livego/actions/workflows/test.yml/badge.svg)](https://github.com/gwuhaolin/livego/actions/workflows/test.yml) [![Release](https://github.com/gwuhaolin/livego/actions/workflows/release.yml/badge.svg)](https://github.com/gwuhaolin/livego/actions/workflows/release.yml) [![CodeQL Advanced](https://github.com/gwuhaolin/livego/actions/workflows/codeql.yml/badge.svg)](https://github.com/gwuhaolin/livego/actions/workflows/codeql.yml) Simple and efficient live broadcast server: - Very simple to install and use; - Pure Golang, high performance, and cross-platform; - Supports commonly used transmission protocols, file formats, and encoding formats; #### Supported transport protocols - RTMP - AMF - HLS - HTTP-FLV #### Supported container formats - FLV - TS #### Supported encoding formats - H264 - AAC - MP3 ## Installation After directly downloading the compiled [binary file](https://github.com/gwuhaolin/livego/releases), execute it on the command line. #### Boot from Docker Run `docker run -p 1935:1935 -p 7001:7001 -p 7002:7002 -p 8090:8090 -d gwuhaolin/livego` to start #### Compile from source 1. Download the source code `git clone https://github.com/gwuhaolin/livego.git` 2. Go to the livego directory and execute `go build` or `make build` ## Use 1. Start the service: execute the livego binary file or `make run` to start the livego service; 2. Get a channelkey(used for push the video stream) from `http://localhost:8090/control/get?room=movie` and copy data like your channelkey. 3. Upstream push: Push the video stream to `rtmp://localhost:1935/{appname}/{channelkey}` through the` RTMP` protocol(default appname is `live`), for example, use `ffmpeg -re -i demo.flv -c copy -f flv rtmp://localhost:1935/{appname}/{channelkey}` push([download demo flv](https://s3plus.meituan.net/v1/mss_7e425c4d9dcb4bb4918bbfa2779e6de1/mpack/default/demo.flv)); 4. Downstream playback: The following three playback protocols are supported, and the playback address is as follows: - `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. Use hls via https: generate ssl certificate(server.key, server.crt files), place them in directory with executable file, change "use_hls_https" option in livego.yaml to true (false by default) all options: ```bash ./livego -h Usage of ./livego: --api_addr string HTTP manage interface server listen address (default ":8090") --config_file string configure filename (default "livego.yaml") --flv_dir string output flv file at flvDir/APP/KEY_TIME.flv (default "tmp") --gop_num int gop num (default 1) --hls_addr string HLS server listen address (default ":7002") --hls_keep_after_end Maintains the HLS after the stream ends --httpflv_addr string HTTP-FLV server listen address (default ":7001") --level string Log level (default "info") --read_timeout int read time out (default 10) --rtmp_addr string RTMP server listen address ``` ### [Use with flv.js](https://github.com/gwuhaolin/blog/issues/3) Interested in Golang? Please see [Golang Chinese Learning Materials Summary](http://go.wuhaolin.cn/)

Video Streaming & Transcoding Disk & Partition Tools
9.9K Github Stars
koa-seo
Open Source

koa-seo

[![Npm Package](https://img.shields.io/npm/v/koa-seo.svg?style=flat-square)](https://www.npmjs.com/package/koa-seo) [![Build Status](https://img.shields.io/travis/gwuhaolin/koa-seo.svg?style=flat-square)](https://travis-ci.org/gwuhaolin/koa-seo) [![Npm Downloads](http://img.shields.io/npm/dm/koa-seo.svg?style=flat-square)](https://www.npmjs.com/package/koa-seo) [![Dependency Status](https://david-dm.org/gwuhaolin/koa-seo.svg?style=flat-square)](https://npmjs.org/package/koa-seo) # koa-seo SEO middleware for koa base on [chrome-render](https://github.com/gwuhaolin/chrome-render), a substitute for [prerender](https://prerender.io). Modern web app use technique like react.js vue.js which render html in browser, this lead to search engine can't crawl your page content. This project want to solve this kind of problem in a general-purpose way, it detect request is from search engine crawler then use headless chrome to render out your modern web page and return to crawler. Here is koa-seo's architecture diagram: ![koa-seo arch](./doc/koa-seo%20arch.png) ## Use ```bash npm i koa-seo ``` then use it: ```js const Koa = require('koa'); const seoMiddleware = require('koa-seo'); const app = new Koa(); app.use(seoMiddleware({ render: { // use `window.isPageReady=1` to notify chrome-render page has ready useReady: true, } })); app.listen(3000); ``` you can download and run this [complete demo](test/server.js) ## Options - `render` options from [koa-chrome-render](https://github.com/gwuhaolin/koa-chrome-render#render-options) For more flexible use case see [koa-chrome-render](https://github.com/gwuhaolin/koa-chrome-render). ## Friends - koa-seo dependent on [koa-chrome-render](https://github.com/gwuhaolin/koa-chrome-render) chrome-render middleware for koa. - [chrome-render](https://github.com/gwuhaolin/chrome-render) general server render base on chrome. - [chrome-pool](https://github.com/gwuhaolin/chrome-pool) Headless chrome tabs manage pool. - [express-middleware-seo](https://github.com/Binaryify/express-middleware-seo) SEO middleware for express base on [chrome-render](https://github.com/gwuhaolin/chrome-render)

Developer Tools SEO Tools
35 Github Stars