EMONシステム: コマンドパイプラインによる マルチメディアストリーム処理 笠松健一 藤川賢治 岡部寿男 古村隆明 京都大学工学部 京都大学情報学研究科 京都大学情報学研究科 京都高度技術研究所 平成14年3月14日 研究の背景と目的 インターネットでマルチメディア伝送を個人でもできる 電話やビデオ放送のソフトウェアが急速に普及 デジタル家電やAV機器を対象とするネットワーク技術の 研究 独自方式→IPへ統合の方向 例えばIPスピーカ、IPマイクの登場 このようなネットワーク環境の変化に既存のソフトウェア では各ソフトウェア毎に逐一対応する必要 再利用性の高い部品を組み合わせることにより 処理を行うシステムを提案 関連研究 (マイクロソフト社製の インターネットを利用するアプリケーション) 電話アプリケーションNetMeeting 音声録音機能 音声再生機能 音声ストリームのネットワーク伝送機能 放送アプリケーションMediaEncoder 音声録音機能 音声ストリームのネットワーク伝送機能 関連研究 (マイクロソフト社製の インターネットを利用するアプリケーション) NetMeetingで伝送する音声を MediaEncoderで放送することはできない 機能は十分に有る 実現にはプログラミング言語の知識が必要 HostA NetMeeting 電話機能 HostB NetMeeting 電話機能 MediaEncoder 放送機能 提案するシステム コマンドパイプラインにより処理 UNIXにはパイプでプログラムを連携し、 様々な処理を行う考え方が存在 →マルチメディアストリーム処理に適用 機能毎にプログラムを実装し、パイプで連携 パイプラインの例 $ audiocapt | udpsend 10.0.0.1 マイクで音声を取り込む データを10.0.0.1へ送信 →マイクで取り込んだ音声を10.0.0.1へ送信 提案するシステムの設計と実装 実装したプログラムと接続関係 audiocapt 音声を録音 jpegcapt 映像の取込み fecenc 前方誤り訂正 の符号を付加 audioplay 音声を再生 udpsend UDP/IPで送信 ntspcall 電話の発信 パイプによる接続 ソケットによる接続 jpegplay 映像を表示 rtpenc RTPヘッダを 付加 fecdec 前方誤り訂正 を行う IPネットワーク ntspwait 電話の着信 rtpdec RTPヘッダを 削除 udprecv UDP/IPで受信 実現したアプリケーションの例 ビデオオンデマンド jpegcapt 映像の取込み fecenc 前方誤り訂正 の符号を付加 rtpenc RTPヘッダを付加 udpsend UDP/IPで送信 HostA$ jpegcapt | fecenc | rtpenc >video.jpgs HostA$ udpsend 10.0.0.2< video.jpgs HostB$ udprecv | rtpdec | fecdec | jpegplay jpegplay 映像を表示 fecdec 前方誤り訂正 を行う rtpdec RTPヘッダを 削除 HostA video.jpgs IP ネットワーク HostB:10.0.0.2 udprecv UDP/IPで受信 実現したアプリケーションの例 実時間放送 jpegcapt 映像の取込み fecenc 前方誤り訂正 の符号を付加 rtpenc RTPヘッダを付加 HostA udpsend UDP/IPで送信 HostA$ jpegcapt | fecenc | rtpenc | udpsend 10.0.0.2 IP ネットワーク HostB$ udprecv | rtpdec | fecdec | jpegplay jpegplay 映像を表示 fecdec 前方誤り訂正 を行う rtpdec RTPヘッダを 削除 HostB:10.0.0.2 udprecv UDP/IPで受信 リードソロモン符号による 前方誤り訂正 Header 元データのパケット (メディアパケット) k n Reed Solomon 符号 FECで付加される パケット (FECパケット) n 個中の任意の n-k 個以下のパケットロス時に データの訂正が可能 n-k 実現したアプリケーションの例 前方誤り訂正を行うリレー 送信ホスト リレーホスト 受信ホスト リレーホスト 受信ホスト リレーホスト 受信ホスト fecencがFECパケットの生成 fecdecがメディアパケットの回復 送信ホストから受信ホストまで伝送する途中で 前方誤り訂正を行うリレー relay$ udprecv | rtpdec | fecdec | fecenc | rtpenc | udpsend 実現したアプリケーションの例 電話 audioplay 音声を再生 rtpdec RTPヘッダを削除 audiocapt 音声を録音 rtpenc RTPヘッダを付加 HostA ntspcall 電話の発信 IPネットワーク audioplay 音声を再生 rtpdec RTPヘッダを削除 audiocapt 音声を録音 rtpenc RTPヘッダを付加 ntspwait 電話の着信 HostB:10.0.0.2 HostA$ ntspcall 10.0.0.2 “rtpdec | audioplay” “audiocapt | rtpenc” HostB$ ntspwait 10.0.0.2 “rtpdec | audioplay” “audiocapt | rtpenc” 既存のプログラムと連携 SSH ホストBでマイクから取り込んだ音声ストリームを ホストAへ暗号化して伝送し、ホストAで再生する HostA$ ssh 10.0.0.2 audiocapt | audioplay 既存のプログラムと連携 tee teeを用いると、プログラムの出力をプログラムや ファイルへ複数同時に出力することができる HostAでカメラから映像を取込み、ファイルに保存しながら放送 HostA$ jpegcapt | tee save.jpgs | rtpenc | udpsend 225.0.0.1 同期再生 映像とそれに同期する音声について考える 映像を取り込むホストと音声を取り込むホストが異 なる場合や、再生を行うホストが異なる場合に 同期再生を行う機能の実現 ホスト間で時計の情報と再生バッファーの状況の共有 NTPを用いてホストの時計を同期することにより 映像と音声を異なるホストで再生する機能を実装 複数ホストによる 同期再生機能の実装 音声送信ホスト NTPサーバ audiocapt 音声を録音 映像送信ホスト jpegcapt 映像の取込み 音声受信ホスト audioplay 音声を再生 IPネットワーク 映像受信ホスト jpegplay 映像の再生 NTPで同期しているホストの時計を元にタイムスタンプを付加 再生時刻はタイムスタンプの時刻+あらかじめ定めた時間 まとめと今後の課題 まとめ 今後の課題 機能毎に実装したプログラムをパイプで連携し、さま ざまな処理を行うシステムを提案 提案するシステムの設計と実装 IPネットワークを利用した様々な処理を実現 音声ミキサーなどの機能を追加 実装したシステムの情報 http://www.ibcast.net/ 実現したアプリケーションの例 IPマイクによる電話 audioplay 音声を再生 rtpdec RTPヘッダを削除 HostA:10.0.0.1 udprecv RTPヘッダを付加 ntspcall 電話の発信 IPネットワーク audiocapt 音声を録音 rtpenc RTPヘッダを付加 udpsend UDP/IPで送信 HostM HostA$ ntspcall 10.0.0.2 “rtpdec | audioplay” “udprecv 10.0.0.1” HostM$ audiocapt | rtpenc | udpsend 10.0.0.1
© Copyright 2024 ExpyDoc