ffmpeg+srs
1,srs(全称simple-rtmp-server)服务器的编译
2,拉取srs源码
git https://github.com/winlinvip/simple-rtmp-server
3,配置安装路径,并执行编译
cd trunk ./configure --prefix=/usr/local make
4,启动srs服务
./objs/srs -c conf/srs.conf
5,拉取电脑桌面并进行推流
ffmpeg -video_size 1024x768 -framerate 30 -f x11grab -i :0.0+0,00 -f pulse -ac 2 -i default -vcodec libx264 -acodec aac -strict -2 -f flv rtmp://127.0.0.1/live/livestream
6,对本地文件视频文件进行推流
for ((;;)); do ./ffmpeg -re -i /usr/local/simple-rtmp-server/trunk/doc/source.200kbps.768x320.flv -vcodec copy -acodec copy -f flv -y rtmp://127.0.0.1/live/livestream; sleep 1; done
7,拉取笔记本电脑摄像头
ffmpeg -f v4l2 -i /dev/video0 -vcodec libx264 -preset:v ultrafast -f flv rtmp://192.168.100.107/live/livestream
8,不借助SRS服务器。直接通过管道播放ffmpeg的录屏流(注意,如果超出分辨率,需要按实际的分辨率设置如1024x768)
ffmpeg -f x11grab -s 1920x1080 -r 30 -i :0.0 -codec:v libx264 -codec:a acc -f flv pipe:1 | ffplay -i pipe:0
9、ffmpeg拉取3.5音频线麦克风的音频流并保存为wav文件(defalut 为默认麦克风设备 -t 指定录制时间)
ffmpeg -f alsa -i default -ac 2 -ar 44100 -acodec pcm_s16le -t 10 output.wav
10、ffmpeg拉电脑屏幕视频流(含音频)并通过nc进行转发。发送端命令:
ffmpeg -f x11grab -s 1920x1080 -i :0.0 -f alsa -i hw:0,0 -c:v libx264 -preset ultrafast -c:a aac -strict experimental -b:a 192k -f flv pipe:1 | nc 192.168.x.x 1234
接收端命令
nc -l 1234 | ffplay -