在 Windows 中使用 FFMPEG 流式传输桌面

在 Windows 中使用 FFMPEG 流式传输桌面

如何在 Windows 中使用 FFMPEG 流式传输桌面?

我努力了 ffmpeg -list_devices true -f dshow -i dummy

然后将其流化

ffmpeg -f dshow  -i video="Chicony USB 2.0 Camera"  -r 30 -vcodec mpeg4 -q 12 -f mpegts        udp://192.168.2.7:6666?pkt_size=188?buffer_size=65535

使用这个我就可以流式传输相机。

我必须输入什么命令才能在 Windows 中流式传输桌面?

答案1

使用以下方式捕获桌面内置 GDI 屏幕抓取工具

ffmpeg -f gdigrab -framerate 30 -i desktop output.mkv

流式传输:

ffmpeg -f gdigrab -framerate 30 -i desktop -vcodec mpeg4 -q 12 -f mpegts udp://192.168.2.7:6666

播放流:

ffplay -f mpegts udp://192.168.2.1:6666

保存流:

ffmpeg -f mpegts -i udp://192.168.2.1:6666 output.mkv

这里您可以在同一个流中找到带有音频的示例。

如果视频流没有立即启动,并且 ffmpeg 输出类似“不存在 PPS 0 引用“——您只是还没有收到关键帧,等待十几秒它就会出现。

答案2

或者,您可以使用UScreenCapture。它使用 DirectX 的 DShow API,适用于 x86 和 x64 架构。安装后,您将找到一个新的输入源“UScreenCapture”,它就是您的实时桌面屏幕。

如果您将其发送到 Wowza 服务器,则需要以下命令:

ffmpeg -f dshow -i video="UScreenCapture" -s **width** x **height** -r **framerate** -vcodec libx264 -pix_fmt yuv420p -b:v **bitrate** -an -vbsf h264_mp4toannexb -f mpegts udp://**your.destination.url:PORTNUMBER**?pkt_size=1316

请注意,我明确更改了像素格式(pix_fmt),因为 ffmpeg 使用了yuv444pyuv420p我必须这样做才能使其工作。

对我来说,它非常有效。

问候,G。

答案3

  1. 下载FFmpeg。64 位或 32 位都可以。

  2. 安装屏幕捕捉录制器.安装程序会自动安装Microsoft Visual C++ 可再发行组件如果需要的话也可以。

  3. 使用

    ffmpeg -f dshow -i video=屏幕捕获记录器 -r 24000/1001 -q 1 out.avi
    

FFmpeg 截屏 Windows

相关内容