0

Red5 サーバーをインストールしました。oflaDemo と同じカスタム アプリケーションを作成しました。アプリケーションの /streams フォルダでビデオを再生できます。アプリケーション名は demo です。アプリケーションがビデオにアクセスしているディレクトリ RED5_HOME/demo/webapps/streams を、共有マシンのフォルダに変更したいと考えています。「c:\streams」など、ローカル マシンのディレクトリに変更できます。IStreamFilenameGenerator を実装する CustomFileNameGenerator を使用してこれを達成しました。しかし、共有フォルダにアクセスできません。これが私の CustomFileNameGenerator クラスです

   import java.io.File;

   import org.apache.log4j.Logger;
   import org.red5.server.api.scope.IScope;
   import org.red5.server.api.stream.IStreamFilenameGenerator;


   public class CustomFilenameGenerator implements IStreamFilenameGenerator {

   Logger log = Logger.getLogger(CustomFilenameGenerator.class);

   /** Path that will store recorded videos. */
   /public String recordPath = "recordedStreams/";/
   /** Path that contains VOD streams. */
   public String playbackPath;



   /** Set if the path is absolute or relative */
   public Boolean resolvesAbsolutePath;


   public String generateFilename(IScope scope, String name, GenerationType type) {
   // Generate filename without an extension.
   return generateFilename(scope, name, null, type);

   }
   public String generateFilename(IScope scope, String name, String extension,               GenerationType type) {
   String filename = null;
   if (type == GenerationType.PLAYBACK)
   {
   filename = playbackPath + name;
   }
   log.info("file Name " + filename);
   if (extension != null)
   // Add extension
   filename += extension;
   log.info("Extension and file name " + filename);


   return filename;
   }
   public boolean resolvesToAbsolutePath()
   {

   log.info("resolvesAbsolutePath" + resolvesAbsolutePath);
   return resolvesAbsolutePath;
   }
   public void setPlaybackPath(String playbackPath) {
   this.playbackPath = playbackPath;
   }
   public void setResolvesAbsolutePath(Boolean resolvesAbsolutePath) {
   this.resolvesAbsolutePath = resolvesAbsolutePath;
   }



   }

以下は、私の red5-web.properties ファイルのプロパティです。

   webapp.contextPath=/demo
   webapp.virtualHosts=*, 192.168.1.20, 192.168.1.20:8088, 127.0.0.1:8088,       192.168.1.20:1935

   playbackPath=C://streams/
   resolvesAbsolutePath=true

以下は、私の red5-web.xml ファイルの Bean 定義です。

   <bean id="streamFilenameGenerator" class="com.abhinow.demo.CustomFilenameGenerator" >

   <property name="playbackPath" value="${playbackPath}" />
   <property name="resolvesAbsolutePath" value="${resolvesAbsolutePath}" />
   </bean>

上記のコードは正常に機能しており、C:\streams フォルダーでビデオを再生できますが、再生パスを /192.168.1.20/streams などの共有フォルダーに変更すると機能しません。Windowsコンピューターを使用しています。また、Windows のマップ ネットワーク ドライブ機能を使用して共有フォルダー /192.168.1.20/streams をネットワーク ドライブにマップし、そのドライブに Z: という名前を付けてみました。次に、パス Z://streams を指定してみましたが、今も機能していません。誰でも私が間違っているところを助けてください。私はそれに2日間苦労しています。この問題を解決するために私を助けてください。

よろしくお願いします。

4

2 に答える 2

0

次の場合にデバッグしましたか

generateFilename

アプリケーションで呼び出されたことはありますか? 最初に、いくつかの log.debug ステートメントをコードに追加し、red5.log (または std.out) を調べます。

セバスチャン

于 2012-11-03T09:34:23.933 に答える
0

試す:

public String generateFilename(IScope スコープ、文字列名、文字列拡張子、GenerationType タイプ) { ...

再生パス + ファイル名を返します。

}

于 2013-03-06T19:36:19.627 に答える