5

ウェブカメラからビデオを録画してサーバーにアップロードできるフレックスアプリを実装しようとしています。

Red5、Flash Media Server、Wowza などのメディア サーバーの実行と、サーバーへのオープンな rtmp ストリームを必要とするチュートリアルと例しか見つかりませんでした。

ただし、ビデオをローカルで録画してから、単純な HTTP 要求でサーバーに送信できるかどうかを知りたいです。

これを行う方法を示すチュートリアルはどこかにありますか? 私はフレックス開発に本当に慣れていないので、段階的な手順を知りたいです:P

4

3 に答える 3

2

チャンスがあります:)

haxevideoは、Haxeで開発された FMS/Red5 系のサーバーです。それらとの違いは、非常に軽量であり、インストールの必要がないことです。

したがって、アプリと一緒に再配布して、実際にオーディオとビデオをローカルで FLV ファイルに記録できるようにすることができます。

Screenweaver を覚えているかどうかわかりませんが、最新バージョンは Haxe を使用して開発され、SWHX と呼ばれています。SWHX の上に本当にHippoHXと呼ばれるラッパーが構築されており、HippoHX がすべての設定を行います。ダウンロードすると、まさに必要なことを実行するサンプルがあります (ローカル ファイルへの記録)。

ファイルを記録したら、あとはサーバーにアップロードするだけですが、それは大したことではありません。

試してみて、何か問題が見つかったら、私にメールを送るか、(かなり) メーリング リストに参加して助けを求めてください。

何でも教えてください、

乾杯!

ファン

于 2009-06-13T07:42:12.283 に答える
0

FLV を ByteArray にエンコードするには、まず ByteArrayFlvEncoder をインスタンス化します。残りは前回のバージョンと似ていますが、メタデータの期間プロパティの更新が完了したら updateDurationMetadata() を呼び出すことができるようになりました。最後に、kill() を呼び出して、ガベージ コレクション用のオブジェクトを準備します。

var baFlvEncoder:ByteArrayFlvEncoder = new ByteArrayFlvEncoder(myFrameRate);

baFlvEncoder.setVideoProperties(myWidth, myHeight, VideoPayloadMakerAlchemy);
// (Omit the 3rd argument to NOT use Alchemy if you're targeting Flash 9)
baFlvEncoder.setAudioProperties(BaseFlvEncoder.SAMPLERATE_44KHZ, true, false, true);

baFlvEncoder.start();

baFlvEncoder.addFrame(myBitmapData, myAudioByteArray);
baFlvEncoder.addFrame(myBitmapData, myAudioByteArray); // etc.

baFlvEncoder.updateDurationMetadata();

saveOutMyFileUsingFileReference( baFlvEncoder.byteArray );

baFlvEncoder.kill(); // for garbage collection

FLV を (AIR で) ローカル ファイルに直接エンコードするには、FileStreamFlvEncoder を File 参照でインスタンス化し、公開された FileStream を開き、すべて完了したら閉じます。

var myFile:File = File.documentsDirectory.resolvePath("video.flv");
var fsFlvEncoder:FileStreamFlvEncoder = new FileStreamFlvEncoder(myFile, myFrameRate);
fsFlvEncoder.fileStream.openAsync(myFile, FileMode.UPDATE);

fsFlvEncoder.setVideoProperties(myWidth, myHeight, VideoPayloadMakerAlchemy);
fsFlvEncoder.setAudioProperties(BaseFlvEncoder.SAMPLERATE_44KHZ, true, false, true);

fsFlvEncoder.start();

fsFlvEncoder.addFrame(myBitmapData, myAudioByteArray);
fsFlvEncoder.addFrame(myBitmapData, myAudioByteArray); // etc.

fsFlvEncoder.updateDurationMetadata();

fsFlvEncoder.fileStream.close();

fsFlvEncoder.kill();

詳細については、以下の参照リンクを使用してください。

http://www.zeropointnine.com/blog/updated-flv-encoder-alchem/

于 2014-06-02T08:09:07.180 に答える