对于任何想知道的人来说,在离开它几个小时之后它现在完美无缺.
我正在尝试使用PHP将视频文件传递给VLC作为即将推出的项目提案的概念证明.
我设法通过创建一个<4KB(灰色10秒)文件并测试我的脚本来显示它的工作原理,但我很好奇为什么会发生这种情况的原因.
这是一个示例脚本,看看我的意思:
$filepath = 'Path/to/your/video';
$vlcpath = 'Path/to/your/VLC executable';
$descriptorspec = array(
0 => array("pipe", "r"), // stdin
1 => array("pipe", "w"), // stdout
2 => array("pipe", "w") // stderr
);
$vlc = proc_open($vlcpath . ' -', $descriptorspec, $pipes, null, null, ['bypass_shell' => true]);
$file = fopen($filepath, 'r');
stream_copy_to_stream($file, $pipes[0]);
fclose($file);
proc_close($vlc);
Run Code Online (Sandbox Code Playgroud)
我在Windows 10上使用PHP 5.5.31.我在PHP网站上看到了一些有关此类事情的错误报告,但他们建议最新版本修复它.我不太了解阻塞流的概念,但我已经尝试过PHP v7.0.3无济于事.
我正在使用命令行运行此脚本: php file.php