Estou hospedando um aplicativo da web local no meu computador (Mac OS X) que contém um botão para abrir um vídeo com o QuickTime. Ao clicar no botão, uma solicitação AJAX é feita para um script PHP com o seguinte conteúdo:

$cmd = "/usr/bin/open $videoFile"; // For example: $videoFile = '/Users/.../Downloads/abc.mp4'
$code = "Performing cmd: $cmd";
shell_exec($cmd);
echo '{code: "$code"}'; // JSON debug output

Dependendo do botão, vários vídeos podem ser abertos. O problema é que nem sempre funciona:

  • vídeos que eu abri manualmente ou com o mesmo comando no aplicativo Terminal pode ser aberto sem problemas pelo script PHP
  • os vídeos não abertos (antes) não abrem, em vez disso, o ícone do QuickTime salta no encaixe, mas nenhuma janela é mostrada. Em seguida, colo o mesmo comando no aplicativo Terminal e o QT é aberto. Se eu sair do QT e tentar o script novamente, ele funciona sem nenhum problema (todos os arquivos de vídeo são verificados antes, se existirem fisicamente; exec(...) não funciona também)
mythbu
fonte