本地显示时使用ffmpeg捕获和流式传输

本地显示时使用ffmpeg捕获和流式传输,ffmpeg,Ffmpeg,我可以用ffmpeg从设备上进行捕获,我可以对音频/视频进行转码,我可以将其流式传输到ffserver 如何在本地显示捕获内容的同时使用ffmpeg进行捕获和流式传输 到目前为止,我一直在使用VLC捕获并流式传输到localhost,然后使用ffmpeg获取该流,再次对其进行转码,然后流式传输到ffserver 我只想使用ffmpeg来实现这一点 谢谢。选项A:使用具有多个输出和单独播放器的ffmpeg: 输出1:复制源代码而不进行代码转换,并将其通过管道传输或发送到本地端口 输出2:转码并发

我可以用ffmpeg从设备上进行捕获,我可以对音频/视频进行转码,我可以将其流式传输到ffserver

如何在本地显示捕获内容的同时使用ffmpeg进行捕获和流式传输

到目前为止,我一直在使用VLC捕获并流式传输到localhost,然后使用ffmpeg获取该流,再次对其进行转码,然后流式传输到ffserver

我只想使用ffmpeg来实现这一点


谢谢。

选项A:使用具有多个输出和单独播放器的
ffmpeg

  • 输出1:复制源代码而不进行代码转换,并将其通过管道传输或发送到本地端口
  • 输出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和
——启用OpenGL


选项A:使用具有多个输出和单独播放器的
ffmpeg

  • 输出1:复制源代码而不进行代码转换,并将其通过管道传输或发送到本地端口
  • 输出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和
——启用OpenGL


您也可以单独使用
tee
对我来说更容易出错的选项(我无法工作):

在这种情况下:

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测试)[code>[Debian stable当前版本])

您也可以单独使用
tee
对我来说更容易出错(我无法工作):

在这种情况下:

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 stable中的当前版本])进行测试,

说明了如何创建第二个输出,但我不想将其转换为两个输出(如两个文件或两个流式服务器),我希望其中一个是本地显示。您将源代码复制到本地输出,以说明如何创建第二个输出,但我不想将代码转换为2个输出(如2个文件或2个流式服务器),我希望其中一个是本地显示。您将源代码复制到本地输出管道“|”是否真的像windows cmd行那样工作?它应该是标准到标准的。我不做Windows,所以你必须试试。管道“|”真的像Windows命令行那样工作吗?它应该是标准到标准的。我不做Windows,所以你必须试试。