вывод в ffmpeg

  • Автор темы Автор темы bevaine
  • Дата начала Дата начала

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);
}
знающих людей прожу помочь
 
а чем писать в файл и на него уже натравливать ffmpeg не вариант?
 
можно было бы писать в отдельный файл, и 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
 
хорошо, можно ли в одном скрипте запустить запись в файл из сокета и при передачи некоторого количества данных не дожидаясь конца выполнения цикла
PHP:
while (!feof($sock)) {
  $context = fgets($sock, 4096);
}
сделать диррект на этот файл
 
нет, нужно асинхронно запустить скрипт (не дожидаясь его окончания выполнения) для создания файла (данные из сокета), а потом сделать: header ("Location: file.flv") на этот файл, думаю это единственный вариант раз ffmpeg не может читать из потока.
 
А кому отдавать header, если выполнения не дождались?
 
Сверху