Вывод оболочки ffmpeg идет в заголовок php?

Я пытаюсь использовать ffmpeg из сценария php, например:

exec('ffmpeg -i input.mp4 -f ogg -y output.ogv >out.txt')

Давайте предположим, что это работает, на самом деле это не по нескольким причинам, но это будет решено хостинг-провайдером, так как у меня нет возможности изменить любой конфиг или что-то в этом роде.

Что кажется странным, так это то, что out.txt всегда равен 0kb, но после завершения работы php-скрипта я получаю вывод, подобный приведенному ниже:

Malformed header from CGI script:
ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers built on May 10 2013 16:31:05 with gcc 4.8.0 (GCC) 20130502 (prerelease) configurati
(......)
Press [q] to stop, [?] for help
[vp8 @ 0x13e8d00] alloc_buffer: av_image_alloc() failed
[vp8 @ 0x13e8d00] get_buffer() failed!
sh: line 1: 1540 Segmentation fault ffmpeg -i ../uploads/videomod_m_7/433c3f8b9b0cc0f6cbdebba5263ff71809811c20o.webm -f ogg -y ../uploads/videomod_m_7/test2.ogv > out.txt
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-type: text/html

0

Решение

Возможно ffmpeg выводит при стандартной ошибке, попробуйте

exec('ffmpeg -i input.mp4 -f ogg -y output.ogv &>out.txt')

также перенаправить stderr в out.txt.

0

Другие решения

Других решений пока нет …