Хорошо, я, наконец, найти, как сделать
Использование X-SendFile это неверное представление
Использование mp4 это неправильно идея, потому что в конце от кодирования программное обеспечение переписывает 4 байта в начале файла
Так это код, который я использую для иметь возможность отправить файл как WebM или FLV файлы, когда FFmpeg закодировать выход
shell_exec('ffmpeg command');
sleep(2); //wait few second for the software start
$foutput ="where/is/your/output.file";
header('Content-Disposition: attachment; file.name.for.the.user"');
header("Keep-Alive:timeout=200, max=500");
//sending by chunk
set_time_limit(3600);
$file =fopen($foutput , 'r');
$files = fstat($file);
$filesize= $files['size'];
$last = 0;
echo fread($file , $filesize);
sleep(5); //wait a little for the software add new bytes
$last = $filesize;
$files = fstat($file);
$filesize= $files['size'];
$done =0;
while($done < 2){
if ($filesize != $last){
fseek($file , $last);
$read = $filesize - $last ;
echo fread($file , $read);
$last =$filesize;
sleep(5);
$files = fstat($file);
$filesize= $files['size'];
}else{
fclose($file);
return 0;
};
};
Я нуб для кодирования и есть проблемы с моим «временем «просто работа кода действительно хороша без каких-либо проблем.
Не используйте размер файла, эта команда не нравится, когда размер файла изменяется все время и возвращается только 4096 в этом случае
Загрузка будет медленной, это нормально, вы получаете кусок на куске, что сделало программное обеспечение с помощью ffmpeg, передача составляет от 200 до 1200 кб/с