Как отправить данные формата FLV в ByteArray с помощью URLLoader в php-скрипт?
Я создаю флеш-игру, в которой есть функция захвата/записи игрового процесса, которую пользователь может просмотреть позже, например, повтор.
На данный момент я уже могу записывать игру и записывать ее в формат flv в переменной ByteArray.
Сейчас я работаю над тем, как отправить этот ByteArray (видеофайл) в php-скрипт и сохранить его на веб-сервере.
Я столкнулся с загрузчиком URL во flash, где он может отправлять данные, и php получит их через метод POST. К сожалению, ByteArray, содержащий данные flv, должен быть сначала правильно закодирован, чтобы php мог его прочитать. Я понял это из примера в сети, где он делает то же самое, только отправляет только файл JPEG ByteArray вместо формата FLV с использованием JPEGENCODER.
Существует ли какой-либо существующий класс, такой как JpegEncoder для формата FLV или любых видеоформатов? Или какая-нибудь обходная работа, например, создание кодировщика "я сам"?
Заранее спасибо, ребята.
Вот мой текущий код для отправки ByteArray
//send byteArray to a php script
var request:URLRequest = new URLRequest(url);
request.method = URLRequestMethod.POST;
//need to correctly encode first the ByteArray in FLV format
//....
request.data = fs; //FLV byteArray
var loader:URLLoader = new URLLoader();
trace(request.data);
1 answers
Только что понял это.
Теперь я могу успешно отправить flv ByteArray в php-скрипте, где затем php получает его и сохраняет в виде файла flv в локальной системе и загружает его на сервер YouTube с помощью zend framework.
Вот мой код во флэш-памяти.
//send byteArray to a php script
var header:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream");
var request:URLRequest = new URLRequest(url);
request.requestHeaders.push (header);
request.method = URLRequestMethod.POST;
request.data = fs; //FLV byteArray
var loader:URLLoader = new URLLoader();
trace(request.data);
loader.load(request)
И scipt, который получает и сохраняет его в виде flv-файла:
$im = $GLOBALS["HTTP_RAW_POST_DATA"];
$fp = fopen("testVid.flv", 'w');
fwrite($fp, $im);
fclose($fp);
Оказывается, мне действительно не нужно кодировать ByteArray, как это делает JPEGEncoder. Я все еще очень новичок во flash и хотя php. И я понятия не имею, является ли это лучшей практикой, которую я могу иметь. Совет был бы очень признателен. Спасибо, ребята.