/flvpusher

A tool for pushing flv/mp4/ts/rtmp/rtsp/hls source to rtmp/rtspserver.

Primary LanguageC++

README for the flvpusher
===============================
A tool for pushing flv/mp4/ts/rtmp/rtsp/hls source to rtmp/rtspserver.
Compile it on a Linux operating system.

Compile
====================
./compile.sh

Run
====================
flvpusher (V: 2)

Usage: flvpusher <-i source|-w> <-L liveurl [--loop] [-a dump_audio] [-v dump_video] [-s tspath] [-f flvpath]|--hls_playlist filename [--hls_time time]> [-h] [--no_logfile]
Description: 
-i, --input
       input source, file category: *.flv, *.mp4, *.3gp, *.ts
                     protocol category: rtmp://*, rtsp://*, http://*.m3u8
-L, --live
       liveurl, inject audio&video to rtmp-server or rtsp-server,
       format: rtmp://<ip>[:port]/live/<rtmp-stream-name>
               rtsp://<ip>[:port]/<rtsp-sdp-name>.sdp
       note: this option is exclusive with -p and -w
-p, --hls_playlist
       pre-process flv or mp4 file to generate *.m3u8, *.m3u8.seek and hls_info.txt for dynamic hls vod
       note: this option is exclusive with -L and -w
-t, --hls_time
       specify the ts-segment's duration in hls vod
-w, --webserver
       start webserver
       note: this option is exclusive with -L and -p
-T, --loop
       if input source is done, start it over again
-N, --no_logfile
       do NOT generate log file, run this program in slience
-v, --dvfile
       dump raw video into file (format: H.264)
-a, --dafile
       dump raw audio into file (format: AAC)
-f, --flvpath
       dump video&audio into flv
-s, --tspath
       dump video&audio into ts
-h, --help
       show this help message and quit


Sample:
1. stream mp4 to rtmpserver (other input sources are the same)
$ flvpusher -i ~/Video/omn.mp4 -L rtmp://127.0.0.1:1935/live/va

2. stream mp4 to rtspserver (ditto)
$ flvpusher -i ~/Video/omn.mp4 -L rtsp://192.168.119.1/va.sdp

3. pre-process mp4 to prepare for hls dynamic vod
$ flvpusher -i ~/Video/omn.mp4 --hls_playlist html/omn/omn.m3u8 --hls_time 5

4. start webserver for hls vod
$ flvpusher -w
note: a. webserver server's root directory is default to ./html
      b. webserver server's port is default to 9877
      c. use player(e.g. vlc) to play this hls vod: http://<this-server-ip:9877>/omn/omn.m3u8
      d. you can modify root directory and listen port in flvpusher_cfg.txt, and put it in the same
         directory with this tool

Other
====================
mail: dengxiayehu@yeah.net