Как отобразить скриншот потока, используя avconv и php с exec?

Когда этот скрипт запускается, изображение сохраняется в файл:

<?php

$url = "rtmp://109.71.162.112:1935/live/sd.jasminchannel.stream";
exec('avconv -i "'.$url.'" -ss 00:00:01 -t 1 -r 1 -f image2 "screenshot.jpg" 2>&1', $output, $status);

header("Content-type: image/png");
readfile("screenshot.jpg");

Хотелось бы, чтобы он был возвращен на экран (на лету означает, что он записывается в переменную, а не сохраняется в файл, а затем читает, отображает, удаляет этот файл):

<?php

$url = "rtmp://109.71.162.112:1935/live/sd.jasminchannel.stream";
exec('avconv -i "'.$url.'" -ss 00:00:01 -t 1 -r 1 -f image2 $variable 2>&1', $output, $status);

header("Content-type: image/png");
echo $variable;

Как я могу это сделать?

0

Решение

Я думаю, что это решит вашу проблему:

<?php

$url = "rtmp://109.71.162.112:1935/live/sd.jasminchannel.stream";
header("content-type: image/jpeg");
echo passthru('avconv -i "'.$url.'" -ss 00:00:01 -t 1 -r 1 -f image2 pipe:.jpg 2>/dev/null');

Это не проверено, но это должно работать. Я работал над похожей проблемой в:
https://gist.github.com/megasaturnv/a42ed77d3d08d0d3d91725dbe06a0efe

и с изображением в теге:
https://gist.github.com/megasaturnv/6e5965732d4cff91f2e976e7a39efbaa

0

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

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