вывод в ffmpeg

bevaine

Новичок
Здравствуйте, такой вопрос, есть скрипт которорый через соккет читает данные и выводит данные, принципе все нормально работает, но эти данные со скрипта должен читать ffmpeg и далее транскодировать в другой формат, и все налету получает, но ffmpeg не хочет читать данные, если вывожу часть данных, все нормально:
PHP:
for ($d=0; $d<10000; $d++) {
   echo fgets($sock, 4096);
}
, либо вывожу большими пакетами:
PHP:
for ($d=0; $d<10000; $d++) {
   echo fgets($sock, 838860);
}
, но такак пауза большая между пакетами, ffmpeg заканчивает работу после вывода первого пакета,
но если пытаюсь вывести все данные ffmpeg запинается:
PHP:
while (!feof($sock)) {
  echo fgets($sock, 4096);
}
знающих людей прожу помочь
 

tz-lom

Продвинутый новичок
а чем писать в файл и на него уже натравливать ffmpeg не вариант?
 

bevaine

Новичок
можно было бы писать в отдельный файл, и ffmpeg его бы хватал, но все происходит через командную строку типа такого:
ffmpeg -i "http://localhost/get_link1.php?link=6512709" -f dvd -vcodec mpeg4 -b 8000000 -aspect 16:9 -copyts -pix_fmt yuv420p -acodec ac3 -ab 448000 -ar 48000 "C:\Test_678ac3ce230e621ad12c12b35d221457.mpg" -v -1 -loglevel quiet
 

bevaine

Новичок
хорошо, можно ли в одном скрипте запустить запись в файл из сокета и при передачи некоторого количества данных не дожидаясь конца выполнения цикла
PHP:
while (!feof($sock)) {
  $context = fgets($sock, 4096);
}
сделать диррект на этот файл
 

bevaine

Новичок
нет, нужно асинхронно запустить скрипт (не дожидаясь его окончания выполнения) для создания файла (данные из сокета), а потом сделать: header ("Location: file.flv") на этот файл, думаю это единственный вариант раз ffmpeg не может читать из потока.
 

fixxxer

К.О.
Партнер клуба
А кому отдавать header, если выполнения не дождались?
 
Сверху