Tips

Red5 フリーソフトのFlashストリーミングサーバ ~開発クライアントの構築 その7~

・変更前

package org.red5.demos.oflaDemo2;

import org.red5.server.adapter.ApplicationAdapter;
import org.red5.server.api.IConnection;
import org.red5.server.api.IScope;
import org.red5.server.api.stream.IServerStream;

public class Application extends ApplicationAdapter {

	private IServerStream serverStream;

	/** {@inheritDoc} */
    @Override
	public boolean appStart(IScope app) {
	    super.appStart(app);
		log.info("oflaDemo appStart");
		System.out.println("oflaDemo appStart");

		//Get plugin
		//AuthPlugin authPlugin = (AuthPlugin) PluginRegistry.getPlugin("authPlugin");
		//Get the handler (application listener in this case) that you want
		//FMSAuthenticationHandler authHandler = authPlugin.getFMSAuthenticationHandler();
		//Red5AuthenticationHandler authHandler = authPlugin.getRed5AuthenticationHandler();
		//Add the handler as a listener for your app (in appStart or where-ever)
		//addListener(authHandler);

		return true;
	}

	/** {@inheritDoc} */
    @Override
	public boolean appConnect(IConnection conn, Object[] params) {
		log.info("oflaDemo appConnect");
		// Trigger calling of "onBWDone", required for some FLV players
		/*
		measureBandwidth(conn);
		if (conn instanceof IStreamCapableConnection) {
			IStreamCapableConnection streamConn = (IStreamCapableConnection) conn;
			SimpleConnectionBWConfig bwConfig = new SimpleConnectionBWConfig();
			bwConfig.getChannelBandwidth()[IBandwidthConfigure.OVERALL_CHANNEL] =
				1024 * 1024;
			bwConfig.getChannelInitialBurst()[IBandwidthConfigure.OVERALL_CHANNEL] =
				128 * 1024;
			streamConn.setBandwidthConfigure(bwConfig);
		}
		*/

//		if (appScope == conn.getScope()) {
//			serverStream = StreamUtils.createServerStream(appScope, "live0");
//			SimplePlayItem item = new SimplePlayItem();
//			item.setStart(0);
//			item.setLength(10000);
//			item.setName("on2_flash8_w_audio");
//			serverStream.addItem(item);
//			item = new SimplePlayItem();
//			item.setStart(20000);
//			item.setLength(10000);
//			item.setName("on2_flash8_w_audio");
//			serverStream.addItem(item);
//			serverStream.start();
//			try {
//				serverStream.saveAs("aaa", false);
//				serverStream.saveAs("bbb", false);
//			} catch (Exception e) {}
//		}

		return super.appConnect(conn, params);
	}

	/** {@inheritDoc} */
    @Override
	public void appDisconnect(IConnection conn) {
		log.info("oflaDemo appDisconnect");
		if (scope == conn.getScope() && serverStream != null) {
			serverStream.close();
		}
		super.appDisconnect(conn);
	}
}

・変更後

package org.red5.demos.oflaDemo2;

import org.red5.server.adapter.ApplicationAdapter;
import org.red5.server.api.IConnection;
import org.red5.server.api.IScope;
import org.red5.server.api.stream.IServerStream;
// 追加
import org.red5.server.api.IBandwidthConfigure;
import org.red5.server.api.stream.IStreamCapableConnection;
import org.red5.server.api.stream.support.SimpleConnectionBWConfig;

public class Application extends ApplicationAdapter {

	private IServerStream serverStream;

	/** {@inheritDoc} */
    @Override
	public boolean appStart(IScope app) {
	    super.appStart(app);
		log.info("oflaDemo appStart");
		System.out.println("oflaDemo appStart");

		//Get plugin
		//AuthPlugin authPlugin = (AuthPlugin) PluginRegistry.getPlugin("authPlugin");
		//Get the handler (application listener in this case) that you want
		//FMSAuthenticationHandler authHandler = authPlugin.getFMSAuthenticationHandler();
		//Red5AuthenticationHandler authHandler = authPlugin.getRed5AuthenticationHandler();
		//Add the handler as a listener for your app (in appStart or where-ever)
		//addListener(authHandler);

		return true;
	}

	/** {@inheritDoc} */
    @Override
	public boolean appConnect(IConnection conn, Object[] params) {
		log.info("oflaDemo appConnect");
		// Trigger calling of "onBWDone", required for some FLV players

		measureBandwidth(conn);
		if (conn instanceof IStreamCapableConnection) {
			IStreamCapableConnection streamConn = (IStreamCapableConnection) conn;
			SimpleConnectionBWConfig bwConfig = new SimpleConnectionBWConfig();
			bwConfig.getChannelBandwidth()[IBandwidthConfigure.OVERALL_CHANNEL] = 1024 * 1024;
			bwConfig.getChannelInitialBurst()[IBandwidthConfigure.OVERALL_CHANNEL] = 128 * 1024;
			streamConn.setBandwidthConfigure(bwConfig);
		}

Eclipseで実行(コンパイル)していきます。
実行(コンパイル)、およびは、動作確認については、前回の記事「Red5 フリーソフトのFlashストリーミングサーバ ~開発クライアントの構築 その6~」を参照してください。

帯域制限するためのクラスがバージョン0.9から削除されているのかは、不明です。
ここまでが、開発クライアントに関する記事となります。

Red5 ~クライアント開発~

Red5 フリーソフトのFlashストリーミングサーバ ~開発クライアントの構築 その1~
Red5 フリーソフトのFlashストリーミングサーバ ~開発クライアントの構築 その2~
Red5 フリーソフトのFlashストリーミングサーバ ~開発クライアントの構築 その3~
Red5 フリーソフトのFlashストリーミングサーバ ~開発クライアントの構築 その4~
Red5 フリーソフトのFlashストリーミングサーバ ~開発クライアントの構築 その5~
Red5 フリーソフトのFlashストリーミングサーバ ~開発クライアントの構築 その6~
Red5 フリーソフトのFlashストリーミングサーバ ~開発クライアントの構築 その7~

Red5 ~demoアプリのまとめ~

Red5 フリーソフトのFlashストリーミングサーバ ~demoアプリのまとめ その1~
Red5 フリーソフトのFlashストリーミングサーバ ~demoアプリのまとめ その2~
Red5 フリーソフトのFlashストリーミングサーバ ~demoアプリのまとめ その3~

Red5 ~サーバを構築しよう~

Red5 フリーソフトのFlashストリーミングサーバ ~サーバを構築しよう その1~
Red5 フリーソフトのFlashストリーミングサーバ ~サーバを構築しよう その2~
Red5 フリーソフトのFlashストリーミングサーバ ~サーバを構築しよう その3~
Red5 フリーソフトのFlashストリーミングサーバ ~サーバを構築しよう その4~
Red5 フリーソフトのFlashストリーミングサーバ ~サーバを構築しよう その5~
Red5 フリーソフトのFlashストリーミングサーバ ~サーバを構築しよう その6~

Flash Media Server

Flash Media Server①
Flash Media Server②
Flash Media Server③
Flash Media Server④
Flash Media Server⑤
Flash Media Server⑥
Flash Media Server⑦
Flash Media Server⑧
Flash Media Server⑨
Flash Media Server⑩

Linux認定資格 LPICを取るなら・・

Linux資格 「LPIC Lv1」徹底解説 連載目次

Recent News

Recent Tips

Tag Search