web-dev-qa-db-ja.com

RTMPライブストリームを複数のクライアントにトランスコードする

私は定期的にウェブサイトpicarto.tvでライブストリームをフォローしています。 WebサイトはストリーミングにRTMPを使用しているため、ビデオソースを表示するにはフラッシュが必要です。多くの(モバイル/組み込み)デバイスにはフラッシュがありませんが、MP4のような形式でビデオを作成したいと思います。

Ubuntu14.04を実行しているデュアルコアVPSと2GBのRAM)を使用して、ビデオをリアルタイムでトランスコードします。VPSには1Gbpsのネットワークリンクがあるため、帯域幅は実際の問題ではありません。月額500GBに制限されていますが。

私がしたいのは、次のことです。

  • 私の電話/タブレット/スマートテレビ/非フラッシュデバイスでストリームを見る
  • 最大10〜15台のデバイスが同時にビデオを視聴できるようにします
  • したがって、クライアントデバイスごとにトランスコーディングスレッドが生成されないようにします。
  • ほとんどのデバイスがそれをサポートしているので、MP4ストリーミング出力を使用することは最良のアイデアのようです

ffmpegを試してRTMPをMP4に変換しようとしましたが、これでは1つのクライアントしか使用できません。私が見つけたすべてのcvlcコマンドは、サーバーに対して集中的すぎるか、ビデオ出力をまったく生成しません。

ffserverは機能しましたが、不安定すぎてメンテナンスされていません。それは私に本当の原因にたどることができない漠然としたエラーを与えました、そして時々それは私にログに何も記録されていない出力を全く与えませんでした。

RTMPストリームのMP4バージョンを1回のデコードで、ストリームから多への方法で提供するためのツール(ffserverのようですが、維持されています)またはその他の方法はありますか?

1
gertmenkel

Github.com/openvcx/openvcxからopenvcxopenvsxストリームプロセッサコンポーネントを試してください

このようなコマンドラインは、RTMPストリームを取り込み、Chrome、Safari、iOS、Android用に出力します。

bin/vsx -v --capture = rtmp://x.x.x.x/bla/lalala --live = 8080 --mkvlive --httplive --rtsp --flvlive

--xcode = ...コマンドラインでトランスコードする必要がある場合もあります。詳細はこちら http://openvcx.com/vsxuserguide.php

2
LiveStreamer