2

ffmpegからffserverへのフィードに成功しました。ffmpegは入力を PIPE として受け取ります。

ffmpeg -loglevel fatal -f image2pipe -re -vcodec png -i - -vcodec libx264 http://localhost:8090/%s.ffm

外部Javaプロセスがsvg/png画像を生成し、 ffpmepgにプッシュします

私のffserver 構成では、ファイルのサイズを定義せずにライブ フィードをffmファイルにバッファリングできます。

私のストリーム構成は次のようになります。

<Stream live2.mjpg>
   Feed feed2.ffm
   Format mpjpeg
   VideoFrameRate 25
   VideoSize 640x880
   VideoQMin 1
   VideoQMax 5
   NoAudio
   Strict -1
</Stream>

問題は、ネットワークを開くことでVLCでストリームを視聴できるにもかかわらず、次のことです。

http://0.0.0.0:8090/live2.mjpg

しかし、既にバッファリングされたムービーをシークすることはできません。映画をシークし、一時停止し、「」から再生を再開する方法はありますか? h264mpg、およびsdpですでにrtspを試しましたが、成功しませんでした:

<Stream test1.mpg/sdp/h264>
   Format rtp
   Feed feed2.ffm
   VideoCodec libx264
   VideoSize 640x880
   VideoQMin 1
   VideoQMax 5
   NoAudio
   Strict -1
   VideoFrameRate 25
</Stream>

この問題のrtspソリューションはありますか、それとも何か他のものが必要ですか?

PIPE を使用しているため、動的ファイルからこれを実現できますか?

4

1 に答える 1

1
  • RTSP

    でのRTSP サポートは少し大雑把に思えます。Darwin Streaming ServerまたはLive555 メディア サーバーffserverを試すことができます。この 2 つは、少なくとも VOD では何らかの形式のトリック プレイをサポートしているようです。パイプを使用しているため、これはおそらく役に立ちません。

  • RTMP

    一部の RTMP サーバー/クライアントは、バッファ内シーク ( Smart Seeking ) をサポートしています。

    スマートシークについて

    Adobe Media Server 3.5.3 と Flash Player 10.1 は連携して動作し、VOD ストリームとバッファを持つライブ ストリームでのスマート シークをサポートします。[ソース]。

    ffserverは RTMP 出力をサポートしていませんが、ffmpegコマンドを使用してストリームをサーバーに直接プッシュできます。

    ffmpeg -re -i <input> -f flv rtmp://...

    Nginx RTMP モジュールC++ RTMPサーバーがありますが、それらがスマート シークをサポートしているかどうかは明確ではありません。VLC は一時停止中に少しシークできるようで、通常、クライアントの RTMP バッファのサイズを変更するオプションがあります。

于 2015-05-09T08:18:02.787 に答える