More Related Content
PDF
PDF
PPTX
PDF
より高品質なメディアサービスを目指す ABEMA の技術進化 PDF
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps PDF
PDF
About GStreamer 1.0 application development for beginners PDF
[AWSマイスターシリーズ] Amazon SQS / SNS What's hot
PDF
PDF
初心者でもわかるActive directoryの基本 PPTX
PPTX
PDF
ODP
PDF
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management) PPTX
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料) PDF
PPTX
PPTX
PDF
PDF
PDF
PDF
PDF
PDF
Prometeusについてはじめてみよう / Let's start Prometeus PDF
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送 PDF
PDF
Viewers also liked
PDF
CloudFrontで実現するセキュアコンテンツ配信と効果のトラッキング PDF
HTML5時代のネット動画技術〜良い子悪い子普通の子(増補改訂版) PDF
HTML5でDRMってアリなの?〜誰も教えてくれないマルチデバイス時代のコンテンツ保護。その現状と展望 PDF
PDF
PDF
HTML5 + JavaScriptでDRMつきMPEG-DASHを再生させる PDF
AWS Black Belt Online Seminar 2017 動画配信 on AWS Similar to ライブストリーミングの基礎知識その2
PDF
[20120410] @marqsの転職を祝うLT PDF
Movie Format in a Nutshell 2013 PDF
PDF
PDF
PDF
PDF
PDF
Dev camp2012jpn day2session2 PDF
Dev camp2012jpn day2session2 KEY
日本Androidの会発表スライド androidのメディア機能の話 PDF
<初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 - Community OpenDay 2013 PDF
IIS Media Services 3.0 による動画配信 PDF
PPTX
[de:code 2018] ビデオ体験を進化させよう!Media Services で安定した配信のコツと Video AI のポイント PDF
20120628_openend_ebookpro_mediverse_epub3_audio_video_emb_fixed_layout_ver2 PDF
20120628_openend_ebookpro_mediverse_EPUB3_Audio_Video_Emb_FixedLayout PDF
PDF
Windows Azure Media Serviceで作成する割と普通な動画サイト PDF
PDF
ActionScriptを使わないFlash勉強会 #1(前日版) ライブストリーミングの基礎知識その2
- 1.
- 2.
- 3.
ビデオフォーマット
コーデック
• 圧縮方法
• WMV9・H.264・VP6・VP8・Theoraなどなど
• WMA・AAC・MP3・Vorbisなどなど
コンテナ
• ファイル構造
• ASF・MP4・FLV・Ogg・MKVなどなど
3
- 4.
- 5.
- 6.
- 7.
ファイルフォーマット
サイズ 9 4 11+ 4 ... 11+ 4
内容 ファイル 0 FLVタグ 前のタグ ... FLVタグ 前のタグ
ヘッダ のサイズ のサイズ
• 全体的にビッグエンディアン
• 1つのFLVタグに映像・音声・メタデータのいずれかが入る
• 基本的にFLVタグが並んでるだけなので簡単
7
- 8.
ファイルヘッダ領域
バイト位置 1 2 3 4 5 6 7 8 9
内容 'F' 'L' 'V' バージョン タイプフラグ データ開始位置
(0x01) (0x09)
ファイル先頭にあるファイルヘッダ
タイプフラグで映像・音声が入っているかどうかを判別
• 音声が入ってたら下から3ビット目が1 (0x04)
• 映像が入ってたら下から1ビット目が1 (0x01)
• 映像・音声は各1ストリームずつだけ入れられる
• 副音声とかはできない
8
- 9.
FLVタグ
位置 1 2 3 4 5 6 7 8 9 10 11 ...
内容 データ データ タイムスタンプ タイムスタンプ ストリームID データ
種別 サイズ 拡張分 (0)
実際のデータが入る単位
データ種別によって内容がかわる
• 音声 = 0x08
• 映像 = 0x09
• スクリプト = 0x12 = 18
タイムスタンプ
• ファイル先頭からのミリ秒単位のタイムスタンプ
• 24ビットで溢れたら拡張分のところに上位8ビットが入る
9
- 10.
音声データ
位置 1 ... ...
内容 フォーマット情報 (追加フォーマット情報) 実データ
フォーマット情報 # コーデック
• コーデック番号・サンプリング周波数・ビット数・ 0 PCM(BE)
チャンネル数なんかが入ってる 1 ADPCM
• さらに詳しくは仕様書参照 2 MP3
• コーデック番号は右表の感じ 3 PCM(LE)
AACのみ追加フォーマット情報がつく 4 Asao 16kHz mono
実データの内容はswfの仕様書が詳しい 5 Asao 8kHz mono
6 Asao
10 AAC
11 Speex
10
- 11.
映像データ
位置 1 ... ...
内容 フォーマット情報 (追加フォーマット情報) 実データ
音声とだいたい同じ # コーデック
フォーマット情報 2 Sorenson H.263
• コーデックIDの他にフレーム情報も入ってる 3 Screen video
• キーフレームだとか中間フレームだとか 4 On2 VP6
• 使えるコーデックは右表の感じ 5 VP6+αチャンネル
実データの内容はやっぱりswfの仕様書が詳しい 6 Screen video 2
7 AVC (H.264)
• Screen videoコーデックの内容もそこに
11
- 12.
スクリプトデータ
位置 1 ...
内容 メソッド名(文字列) 引数(配列かオブジェクト)
FLVの特徴的なところ
ActionScriptのメソッド呼び出しデータが入る
• ビデオにプレイヤー固有のデータを埋め込める
各文字列やオブジェクトデータはAMF0で格納される
• FLVの仕様書に全部書いてあるので気にしなくてよい
タイトル・作者・ビットレート等のメタデータもスクリプトタグで入る
• メソッド名 = onMetaData
• 引数 = ECMAArray(プロパティの配列)
その他プレイヤーに固有の命令も埋め込める(はず)
12
- 13.
- 14.
- 15.
- 16.
FLV配信は難しい その2
エンコーダ・ストリーミングサーバの問題
× FlashMedia Live Encoder
• ストリーミングはFlash Media ServerへのPushのみ
• FLVはファイルへの保存のみ
△ ffserver
• 設定が難しい
• Windowsではバイナリがない
△ VLC
• H.264使えばいけそうだが重すぎる
△ ffmpeg + 独自ストリーミングサーバ
• 設定さえできれば使えそう
• GUI作るのがめんどい
16
- 17.
FLV配信は難しい その3
プレイヤーの問題
Windows MediaPlayerなどでは標準で再生できない
• ffdshow的な別なコーデックパックが必要
• 入れてもらえるか?
Flashベースのプレイヤー
• PeerCastのHTML内に設置しないと見れない
• すごいめんどい
AIRベースのプレイヤー
• あれば見れると思う
• あればな
• やっぱりインストールの問題はある
17
- 18.
FLV配信の利点
何かいいことあるのか?
H.264が使える
•x264は品質重視のようで重すぎる
• HWエンコーダを使いたい
VP6が使える
• ffmpegで使った感じでは綺麗でも軽くもない……
Flash Screen Video 2が使える
• プログラミング配信にいい感じ
スクリプトタグが使える
• プレイヤー・エンコーダが一括で作れれば面白いことができそう
RTMPからの変換が簡単
18
- 19.
- 20.
- 21.
参考文献
FLV and F4VFile Format Specification (Version 10.1)
• http://www.adobe.com/devnet/f4v.html
SWF File Format Specification (version 19)
• http://www.adobe.com/devnet/swf.html
Real-Time Messaging Protocol (RTMP) specification
• http://www.adobe.com/devnet/rtmp.html
21