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相关链接
- OPTIONS - 选项列表
- AUDIO OUTPUT DRIVERS - 音频输出驱动
- VIDEO OUTPUT DRIVERS - 视频输出驱动