ffmpeg -list_devices true -f dshow -i dummy
开始推流:
ffmpeg -f dshow -i video="Integrated Webcam" -f rtp rtp://192.168.1.127:8888
这条指令会把摄像头“Integrated Webcam”的视频,通过RTP协议,推送到 192.168.1.127这台电脑的8888端口。
屏幕上会显示一段SDP:....内容,把这段内容保存到192。168。1。127这台电脑上就可以用ffplay播放了。
如果要看高清的,可以用:
ffmpeg -f dshow -i video="Integrated Webcam" -preset:v ultrafast -tune:v zerolatency -vcodec h264 -f rtp rtp://192.168.1.127:8888
如果要加时间戳和多路输出,在批处理中用下面的代码,如果直接在命令行,%%Y这些,不需要两个%%号,一个就可以了:
@ffmpeg -hwaccel qsv -f dshow -i video="Integrated Webcam" -b:v 1M -tune:v zerolatency -vf drawtext="x=w-tw:fontcolor=white:fontsize=30:text='%%{localtime\:%%Y-%%m-%%d\\\:%%H\\\:%%M\\\:%%S}'" -f rtp rtp://192.168.1.127:8888 -b:v 1M -tune:v zerolatency -vf drawtext="x=w-tw:fontcolor=white:fontsize=30:text='%%{localtime\:%%Y-%%m-%%d\\\:%%H\\\:%%M\\\:%%S}'" -f rtp rtp://111.22.33.44:6666
也可以用tee进行一路压缩,多路输出。
在192.168.1.127上,编辑sdp文件,类似下面:
SDP:
v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 192.168.1.127
t=0 0
a=tool:libavformat 58.17.103
m=video 8888 RTP/AVP 96
b=AS:200
a=rtpmap:96 MP4V-ES/90000
a=fmtp:96 profile-level-id=1
保存为一个video.sdp即可。
然后运行指令:
ffplay -protocol_whitelist file,udp,rtp video.sdp
就可以看到视频流了