Transcript ppt - 岡部研究室
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