我发现,当我使用硬盘上的 VLC 2.0.6 (Twoflower) 观看一些视频文件时,它们会断断续续地播放(时断时续,导致视频和音频出现失真和丢失)。当我将播放速率提高到 1.0 倍以上时,这种情况尤其明显。
这些视频文件很小(大约 300-700MB+),我的电脑也不是那么旧(大约 6 个月)。这是一台戴尔 Inspiron N411Z 电脑,配备英特尔酷睿 i5-2450M 2.5GHz、6.00GB RAM、64 位 Windows 7 Home Premium SP1 操作系统,评分为 4.8(这是图形性能)。硬盘是 500GB SATA 硬盘,缓存为 8MB,传输速度为 3GB,转速为 5400RPM(完整规格可在此处找到)。
ffmpeg 报告的其中一个视频的编解码器:
Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 608x336 [SAR 1:1 DAR 38:21], 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p, 32 kb/s
这很烦人,我不认为这应该发生。我确实看到了这个问题,但我认为这不太一样,因为那个问题只涉及视频而不涉及音频。
有多少人遇到过这种情况?您的解决办法是什么?
答案1
这个问题似乎是磁盘访问问题。通过将电影放入缓存中,这个问题就消失了。问题是如何首先将其放入操作系统的磁盘缓存中。我写了这个简单的批处理脚本:
c:\cygwin\bin\cp.exe "%~1" /dev/null
这当然需要赛格威已加载到系统中。MinGW 无法工作,因为它导致了以下错误:
/usr/bin/cp: cannot create regular file `/dev/null': Invalid request code
似乎cp
没有正确实现明网。我确实尝试过这个:
copy /b %1 nul
但不知为何,它似乎没有起作用作为很好(尽管这样做比根本不做要好)。
执行
我将脚本命名为cacheFile.bat
并将脚本放入文件夹中(例如%用户配置文件%\bin,这是我创建的),然后在文件夹.lnk
中为该文件创建一个SendTo
,并将其命名为cache file
SendTo
(为了轻松进入文件shell:SendTo
夹,请在开始->运行提示或探索者地址栏)。通过将文件Run
的属性设置.lnk
为Minimized
,窗口将不会显示,除非在任务栏中。这可以通过右键单击文件.lnk
,选择Properties
并在Shortcut
选项卡中设置Run
为 来完成Minimized
。
现在我可以右键单击一部电影并将其放入缓存中。
当然可以修改批处理文件以将其缓存,然后在执行此操作后立即运行 VLC,但这样我就不必等待文件完全复制后再开始观看视频,或者在观看视频时,我可以根据需要再次缓存它。