在 ffmpeg 中,如何保持 SDL 输出实时预览?

在 ffmpeg 中,如何保持 SDL 输出实时预览?

当在 ffmpeg 命令行中单独使用时,SDL 提供出色的实时显示,除了音频流之外,视频流几乎没有延迟。就像这样。

ffmpeg -f dshow -video_size 1920x1080  -rtbufsize 2G -framerate 59.94 -i "Directshow A/V capture devices" -vcodec rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL OUT"

但是当与其他输出一起使用时,即在多个输出的情况下,SDL 输出显示明显的延迟,长达 5 秒或更长时间。例如,我尝试通过 SDL 和编码输入实时显示输入视频流并将其保存为下面的 ffmpeg 命令集。但 SDL 输出显示明显延迟。

ffmpeg -f dshow -video_size 1920x1080  -rtbufsize 2G -framerate 59.94 -i "Directshow A/V capture devices" \
        -c:v rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL OUT" \
        -c:v h264_qsv -preset fast -profile:v high  -b:v 7500k -trellis:v P -r 30 -g 60 -c:a aac -b:a 128k -strict experimental -y -f mpegts d:\test.ts

有没有办法让 SDL 输出实时显示?

我如何才能通过 SDL 实时监控捕获的输入视频并同时对其进行编码和保存?提前致谢。

相关内容