我可以使用ffmpeg从设备捕获,我可以转码音频/视频,我可以将其流式传输到ffserver。
如何在本地显示捕获的内容时使用ffmpeg捕获和流式传输?
到目前为止,我一直在使用VLC捕获并流式传输到localhost,然后ffmpeg获取该流,再次对其进行转码,然后流式传输到ffserver。
我只想使用ffmpeg这样做。
谢谢。
答案 0 :(得分:1)
选项A :使用带有多个输出的ffmpeg
和一个单独的播放器:
输出2:转码并发送到服务器
使用ffplay
ffmpeg -f x11grab [grab parameters] -i :0.0 \
[transcode parameters] -f [transcode output] \
-f rawvideo - | ffplay -f rawvideo [grab parameters] -i -
选项B :ffmpeg
仅限OpenGL和SDL窗口(需要SDL和--enable-opengl
)
ffmpeg -f x11grab [grab parameters] -i :0.0 \
[transcode parameters] -f [transcode output] \
-f opengl "Window title"
答案 1 :(得分:0)
您还可以分别使用tee
,这对我来说更容易出错(我无法让aergistal's solution正常工作):
cat file | tee >(program_1) [...] >(program_n) | destination
在这种情况下:
ffmpeg -i rtsp://url -codec:a aac -b:a 192k -codec:v copy -f mpegts - | \
tee >(ffplay -f mpegts -i -) | \
ffmpeg -y -f mpegts -i - -c copy /path/to/file.mp4
(已通过ffmpeg v:3.2.11
测试(在Debian稳定版中为当前版本)