我正在尝试在 Windows 10 工作站上用 ffplay 替换专有视频播放器。要求我使用 Decklink Mini Recorder 卡,视频尺寸为 1280x720P,无边框并在屏幕上的特定位置打开。
视频叠加在另一个名为 iControl 的应用程序上,该应用程序可更改 Decklink 卡的视频输入。我将其作为批处理文件运行:
@echo off
ffplay -f dshow -video_size 1280x720 -left 631 -top 19 -rtbufsize 75000K -framerate 59.94 -i video="Decklink Video Capture":audio="Decklink Audio Capture" -noborder -hide_banner -alwaysontop
这种方法可以很好地运行大约 8 到 10 个小时,但随后开始出现实时缓冲区错误,视频输入太满或接近太满,帧开始丢失。我无法增加缓冲区大小,因为几个小时后会导致口型同步问题。我在另一篇文章中看到,这个问题在 ffmpeg 中已通过参数修复thread_queue_size
,但该选项似乎不适用于 ffplay,我无法弄清楚如何使用 ffmpeg 打开没有边框的视频窗口,并在屏幕上的特定 X/Y 坐标处打开。
有任何想法吗?
答案1
- 如果你必须使用 FFPLAY,将其更新到最新版本。但是,如果应用程序中存在内存泄漏,那么作为用户的您无法修复该问题。开发人员需要修复它并发布新版本。
- 如果你可以选择切换玩家,可以尝试以下许多优质、免费的 Windows 播放器,例如甚高频液晶,mpc-hc或众多替代方案。我的经验是,前两个,以及其他很多个,都没有内存问题。
- 一种可能性是 Windows 操作系统没有从其候补名单迅速。你可以尝试使用 WagnardSoft 的免费工具智能待机列表清理器 (ISLC)加快内存重新分配。虽然它旨在改善游戏体验,但我发现它对于其他内存密集型任务也很有用,例如文件转换和将大量数据传输到电子阅读器。无需安装,因此很容易测试它是否有用。