Skip to content

LOW LATENCY PLAYBACK(低延迟播放)

mpv 针对正常视频播放进行了优化,这意味着它实际上会尝试缓冲尽可能多的数据。这会增加延迟。减少延迟只能通过专门禁用增加延迟的功能来实现。

内置低延迟配置文件

内置的 low-latency 配置文件尝试应用一些可以减少延迟的选项。您可以使用 --profile=low-latency 来应用所有这些选项。您可以使用 --show-profile=low-latency 列出内容(其中一些选项相当晦涩,并且可能在每个 mpv 版本中都会更改)。

请注意,某些选项可能会降低播放质量。

延迟来源

大多数延迟实际上是由不方便的计时行为引起的。您可以使用 --untimed 禁用此功能,但它可能会中断,除非流没有音频,并且输入以恒定速率向播放器提供数据。

另一个常见问题是 MJPEG 流。这些不会发出正确的帧率信号。使用 --untimed--correct-pts=no --container-fps-override=60 可能会有所帮助。

直播流处理

对于直播流,由于暂停流、播放速率略低或"缓冲"暂停,数据可能会积聚。如果启用了 demuxer 缓存,可以手动跳过这些数据。实验性的 drop-buffers 命令可用于丢弃任何缓冲数据,尽管它非常具有破坏性。

在某些情况下,手动调整 TCP 缓冲区大小等可以帮助减少延迟。

其他可尝试的选项

  • --opengl-glfinish=yes - 可以减少图形驱动程序中的缓冲
  • --opengl-swapinterval=0 - 同上
  • --vo=xv - 同上
  • 没有音频时 --framedrop=no --speed=1.01 可能对直播源有帮助(结果可能参差不齐)

配置示例

bash
# 应用低延迟配置文件
mpv --profile=low-latency stream.mp4

# 自定义低延迟配置
mpv --video-sync=audio --interpolation=no --video-latency-hacks=yes stream.mp4

相关链接