===MP4BOX_--mux===
/usr/local/bin/mp4box -fps 23.976025 -add 無敵看板娘07.264 -add 無敵看板娘07.aac.mp4 -new 無敵看板娘07.mp4
===MP4BOX_--mux===どちらも電卓の計算結果とは全然違う。
/usr/local/bin/mp4box -fps 29.970030 -add 日本の話芸.264 -add 日本の話芸.aac.mp4 -new 日本の話芸.mp4
Welcome to Darwin!2)gccでビルド。同一フォルダ内に"float.out"ができる。
MACNAME:~ USERNAME$ cd ~/Desktop/A
MACNAME:~/Desktop/A USERNAME$ ls
float.c
MACNAME:~/Desktop/A USERNAME$ gcc /Users/USERNAME/Desktop/A/float.c -o /Users/USERNAME/Desktop/A/float.outリターン
3)計算。MACNAME:~/Desktop/A USERNAME$ /Users/USERNAME/Desktop/A/float.outリターン4)それぞれを小数点以下6桁で四捨五入。これは手で^^;
1st Number: 30000リターン
2nd Number: 1001リターン
30000.0000000000 / 1001.0000000000 = 29.9700298309
MACNAME:~/Desktop/A USERNAME$ /Users/USERNAME/Desktop/A/float.outリターン
1st Number: 24000リターン
2nd Number: 1001リターン
24000.0000000000 / 1001.0000000000 = 23.9760246277
MACNAME:~/Desktop/A USERNAME$
MACNAME:~ USERNAME$ mp4box -info /Users/USERNAME/Movies/0913/001-0809_NHK-BS2_BSアニメ夜話_23_鋼の錬金術師.mp4 リターン
* Movie Info *
Timescale 600 - Duration 00:54:58.508
Fragmented File no - 2 track(s)
File Brand isom - version 1
File has root IOD
Scene PL 0xff - Graphics PL 0xff - OD PL 0xff
Visual PL: AVC/H264 Profile (0x15)
Audio PL: AAC Profile @ Level 2 (0x29)
No streams included in root OD
Track # 1 Info - TrackID 1 - TimeScale 29969 - Duration 00:54:58.508
Media Info: Language "und" - Type "vide" - Sub Type "avc1" - 98853 samples
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 640 x 480
Self-synchronized
Track # 2 Info - TrackID 2 - TimeScale 48000 - Duration 00:54:58.368
Media Info: Language "und" - Type "soun" - Sub Type "mp4a" - 154611 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40
MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 48000
Synchronized on stream 1
MACNAME:~ USERNAME$ mp4box -raw 1 /Users/USERNAME/Movies/0913/001-0809_NHK-BS2_BSアニメ夜話_23_鋼の錬金術師.mp4 リターン"001-0809_NHK-BS2_BSアニメ夜話_23_鋼の錬金術師_track1.h264"ができる。
Extracting MPEG-4 AVC-H264 stream to h264
MACNAME:~ USERNAME$ mp4box -raw 2 /Users/USERNAME/Movies/0913/001-0809_NHK-BS2_BSアニメ夜話_23_鋼の錬金術師.mp4 リターン"001-0809_NHK-BS2_BSアニメ夜話_23_鋼の錬金術師_track2.aac"ができた。
Extracting MPEG-4 AAC
MACNAME:~ USERNAME$ mp4box \リターン
-fps 29.970030 \リターン
-add /Users/USERNAME/Movies/0913/001-0809_NHK-BS2_BSアニメ夜話_23_鋼の錬金術師_track1.h264 \リターン
-add /Users/vies/0913/001-0809_NHK-BS2_BSアニメ夜話_23_鋼の錬金術師_track2.aac \リターン
-new /Users/USERNAME/Movies/0913/001.mp4リターン
AVC-H264 import - frame size 640 x 480 at 29.970 FPS
Adjusting AVC SizeLength to 16 bits
Import results: 98853 samples - Slices: 1566 I 77424 P 118716 B - 1 SEI - 1566 IDR
AAC import - sample rate 48000 - MPEG-4 audio - 2 channels
Saving /Users/USERNAME/Movies/0913/001.mp4: 0.500 secs Interleaving
MACNAME:~ USERNAME$ mp4box -info /Users/USERNAME/Movies/0913/001.mp4 リターンこれで実写番組でのリップシンクがかなり改善した。b_pyramid復活させて試そっと。
* Movie Info *
Timescale 600 - Duration 00:54:58.395
Fragmented File no - 2 track(s)
File Brand isom - version 1
File has root IOD
Scene PL 0xff - Graphics PL 0xff - OD PL 0xff
Visual PL: AVC/H264 Profile (0x15)
Audio PL: AAC Profile @ Level 2 (0x29)
No streams included in root OD
Track # 1 Info - TrackID 1 - TimeScale 30000 - Duration 00:54:58.395
Media Info: Language "und" - Type "vide" - Sub Type "avc1" - 98853 samples
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 640 x 480
Self-synchronized
Track # 2 Info - TrackID 2 - TimeScale 48000 - Duration 00:54:58.368
Media Info: Language "und" - Type "soun" - Sub Type "mp4a" - 154611 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40
MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 48000
Synchronized on stream 1
本文中でIsoMedia fileに言及する事があります。IsoMediaとは、MPEG-4 Part 12規格に由来する全てのフォーマット~MP4、3GP、そしてMJ2K file~の一般名称です。MJ2K fileのサポートはまだGPACではテストされていません。
version 0.2.4以降、MP4BoxはIsoMedia fileのin-place rewrite(入力ファイルの上書き)を行います。この動作は -out Filename オプションで変更できます。
古いバージョンのMP4Boxでは、既存のIsoMedia file(例えばAFILE.mp4)を上書きせず、出力はout_AFILE.mp4のようになっていました。出力ファイル名を変更するには -out Filename オプションを使います。
version 0.2.4以降、MP4Boxは常にファイルを0.5秒間隔でインターリーブ(*交互配置*)し、メタデータを先 頭に書き込みます。これはHTTPスト リーミングに便利なようにです。
通常、MP4Boxは新しいIsoMedia fileの生成時に一時ファイルを作成します。作成場所はOSによって異なりますが、一時ファイル作成に使うドライブやパーティションに充分な空きや書き 込み権限が無いケースもあります。このような場合に一時ファイルの作成場所を変更するには -tmp path_to_dir オプションを使います。
MP4Boxはaudio/video/imageのトランスコーディング(メディアトラックを他の符号化形式に再エンコードするこ と)ができません。 トランスコードには他のツールが必要です。
version 0.2.2以降、プロンプトでオプションの順番を気にする必要は一切ありません。
このページのドキュメントは最新版のMP4Boxについて書かれるものですから、時にGPAC CVSでなければ使えないオプションに言及する事があります。もしも手許で使えないオプションがあったらアップグレードして下さい。
このオプションの多くは入力ファイルの保存方式を指示す るものです。作成、変換、既存ファイルの変更全てに使えます。
-tmp dirMP4Box は以下のファイルを規格に適合した IsoMedia fileに変換できる:
RAW フォーマットとその拡張子:
AV コンテナとその拡張子:
テ キストフォーマットとその拡張子:
変換コマンドの書式は MP4Box -add inputFile destinationFile。こ のオプションは複数ソースからメディアをインポートするのに使う。一般的なMP4boxビルドでは最大で20個の-addコマンドが使える。 destination file が無い場合は自動的に作成し、トラックを追加する。destination fileを削除したい場合は、 -new オプションを追加する事。
MP4Box はinput fileの全体ではなく、任意の量をインポートできる。指定書式は -add inputFile%N、N はインポートする秒数。インポート開始位置は任意指定できないので、常に先頭からになる。
-add オプションを使う場合、MP4Boxは自動的にデフォルトのBIFS と OD トラックを作る。出力ファイルが可能な限り ISMA 1.0 standard に適合するようにだ。出力ファイルの拡張子が .3gp または .3g2だった場合、MP4Box は自動的に 3GP(2) 規格に適合するファイルを書き出す。これは、MP4Box で-addを使うと、システムトラックが除去される事を意味する。これを避けるには -keepsys オプションを使う事。出力ファイルの拡張子が.m4aの場合、MP4Box は自動的に iTunesが必要とする情報を書き込む。
既存のIsoMedia fileを-addオ プ ションでインポートする際、MP4BoxはMPEG-4 または 3GPP(2)規格に適合しない全てのトラックを自動的に 除去す る。そうしたトラックも残したい場合は -keepall オプションを使う事。
テキストインポートに関する注意 : SRT または SUB fileをインポートする際、MP4Boxはデフォルトで字幕が映像の下端に出るようにレイアウトオプションを指定する。したがって、ビデオトラックがま だ一つもないファイルに字幕ファイルをインポートするのは良く無い(デフォルトのSRT/SUBインポートは、デフォルトのserif フォント・フォントサイズ18・ディスプレイサイズ400x60になる)。3GPP timed textに関する詳細は、http://gpac.sourceforge.net/doc_ttxt.php。
メディアをインポートする際に使える各メディア固有のオ プション。non-IsoMedia fileに使えるオプションは、対象のメディアトラックに -info オプションを使う事。例: MP4Box -info 2 file.mpg
-dref :MPEG-4規格は"マルチタレント"、あらゆるニーズに応える事を狙っていますので、方式が 3つあります:
1)ビデオビットストリームレベルで指定する方式:
現時点ではこれが最も実用的で、広く使われているやりかたでしょう。PARを指定できるコデック(例:3ivx、ffmpeg/ffvfw、XviD)を
使って、出来上がったAVIをMP4 muxerでMP4にmuxします。この場合、MP4 muxerはなんでも構いません( 3ivx
mp4 muxer, MP4Box or mp4UI)。
既にエンコード済みのビットストリームのPARを変更するには、MPEG-4 ASPではMoitahの MPEG4 Modifier、AVCでは hhanhの ARChange
を使います。もっとも、MP4BoxではどちらのフォーマットでもPARを変更できます。
自動アナモルフィック再生に対応したプレイヤは、VideoLAN、MPlayer。DShowでは、3ivx、Nero か Haali
parsers と XviDの組み合わせ(ARをautoに)、3ivx("force overlay"を使う)、Nero か
ffdshow("overlay mixer"を使う)のdecoder filter。
MP4
では"Composition
Matrix"を使う方式も定義しています。これはアスペクトレシオを変更したり、ピクチャを回転させたり、複数のレイヤーを扱ったり、再生中にオーディ
オストリームを二個ミックス(台詞と音楽が分離している映画など)したり、、、、。
Quicktime/Pro
ではこうしたたくさんのcompositionを扱う事ができます。Movie -> Get Movie
Properties -> Video/Sound Track -> Size/Layer/Volume/...
。またそうしたcompositionを持つMP4ファイルを正しく再生できます。
最も幅広いオーサリングができる方式です(Q9)。AR の変更もできます(例えばTransform2D.scaleを使うなど)。BIFS control streamの作成と再生にはGPAC project tools、つまりMP4BoxとOsmo4を使いましょう。
はい。
タイムコードファイルを使います。これをMP4ファイルにくっつけるか、ASPならn-vopsをドロップさせます。
MP4の大きなアドバンテージの一つは相互運用性と、オープ ン規格な事(ライセンスフリー!)です。これをサポートする非常にたくさんのツールが、全てのプラットフォームで出ています。Mac、Linux、 PocketPC、そしてもちろん Windows。
まず始めに以下の二つが必要です。
splitter/parser filter:再生中に、コンテナファイルを内蔵するストリームに分割するもの(audio, video, subtitles)。
decoder filter:エンコードされたストリームをデコードするもの(例えば ffdshow、3ivx、CoreAAC)。
話がずれますが、AVI用のsplitterをインストールする必要が無いのは、デフォル トでwindowsに入っているからです。
話を戻して、こうしたフィルタを含んだパッケージが入手可能です。MP4のストリーミングについては、Apple
と MPEG4IPが無償で良いツールを公開しています。
ストリーミングサーバとしては、Appleの Darwin Streaming Serverが使えま
す。ガイドはeverwicked とlinuxjournalにあります。
ライブストリー
ミンでは、Linuxのみですが、MPEG4IP の mp4live
が使えます。ガイドは everwicked と MPEG4IPにあります。Windowsでは MPEGRecorder
が使えます(どうやらmp4liveのポートのようです)。
ViTooKi
の toolも試すと良いでしょう(オープンソースのストリーミングサーバ、Player、その他)
Cata
からも、オープンソースのMP4ストリーミングサーバが出ています。
MAC では Live
Channel を見て下さい。
ストリーミング放送の
MP4を再生するには、AppleのQuicktime、RealのRealPlayer
10、MPEG4IPの WMP4Player、Dicasの mpegableおよび EnvivioTV (この二つは dshow
playerです)そしてGPACの Osmo4 (最後の二つは streamed advanced
content/user interactivitiyもサポートしています(Envivioのインタラクティブ・デモ))。
また、 MediaFrame
(demos)
と IBM (interactive demos)のjava
appletを使うと、プレイヤをインストールしなくてもMP4ストリーミングを再生できます!。
MPEG-4規格はAVC/H.264で最新で、技術的にも素晴らしく、state-of-the-artのビデオ符号化フォーマットです。
AVC/H.264 ビデオ符号化規格は2003年に二つの団体で策定されました。ISOのMPEGとITUのVCEG です。ITUは国連の下部組織で、H.263フォー マット(主にビデオ会議のソフトに使われてい ます)を策定した機関です。
AVC/H.264 規格そのものの開発はJVTが 開発にあたりました。これにはMPEG とVCEGの専門家が参加しています。
MPEGサイドから見ればこの規格は MPEG-4 Part 10 (ISO 14496-10)、ITU サイドから見ればH.264 (ITU の文書番号)。 AVC(Advanced Video Coding)という "正式な" タイトルはMPEG側がAACと 並べた時のバランスを考えてつけたものです。
AVC/H.264規格は4種類のプロファイルを定義しています。Baseline、Main、 Extendedお よびHigh Profile。この下にさらにレベル(*参考)による分類があります。
DVD バックアップには、High Profileを次項の符号化ツール(* 要素技術*)と一緒に使うのが一番向いているようです。
MPEG-4 ASP (*試訳)の符号化ツールも読んで下さい。GMC以外はAVCでも使えます。
AVC/H.264では、ビットストリームの記述方式(マクロブロック・タイプ、モーションベクトル+参照インデックス、、、)に、 MPEG-4 ASPより先進的なエントロピー符号化ツールを使います。二種類のエントロピー符号化が 定義されています。
CABACは、AVC/H.264デフォル トのCAVLC (別名UVLC)よりも強力な圧縮方式で、ビットレートを約10~15%節約できると言われています(特に高ビットレート時)。CABACもCAVLCも ロスレスで画質低下が一切ありません。し かしエンコードとデコード速度は低下します。
Loop/Deblocking Filter:(他に、インライン フィルタ、インラインデブロック、などとも)
プレフィルタ(例えばavisynthが行う エンコード前のフィルタリング)や、ポストプロセス/フィルタ (デコーダが最終出力前に行うもの)に対して、ループフィルタはエンコード工程の中で、各フレー ムがエンコードされた後にかけるものです。
厳密にはエンコードの 後、但し、後続フレームの為の参照フレームとして使われる前 の時点です。これは特に低ビットレート時のブロックノイズ減少に効果があります。しかし、エンコードとデコードは遅くなります。
Variable Block Sizes/Macroblock Partitions:
MPEG-4 ASPでは、イ ンター4V、またはインター4MVを使うと、16x16~8x8ピクセルの間でブロックサイズを変える事ができました。
AVC/H.264 では、モーションサーチの精度を決めるマクロブロックの大きさを、4x4ピクセルまで下げる事を提案していま す。これは、8x4のように段階的に下げて行く事もできます。ブロックサイズは映像内容に応じて可変です。
各マクロブロックにどの 程度のブロックサイズを与えれば最も効果的か、その判断 が賢いものが良いエンコーダと呼ばれるでしょ う。
Multiple Reference Frames:
MPEG-4 ASPでは、参照フレームにできるのは直前のフレームのみでした。
AVC/H.264のインター・モーション・サーチでは、複数の 候補から参照フレームを選べるようになりました。
つまり、ビデオコデックはASPのようにシンプルに直前フレームを参照するか、そ れとももっと前のフレームを参照するか自分で 決められると言う事です。 例えば、Pフレームは直前のIフレームよりももっと前のフレームを参照できます。
このため、新しいタイプのIフレームが必要になり ました。IDRフレームです。これはIフ レームの一種ですが、後続のフレームに自分よりも前を参照する事を禁止します。複数参照フレームを使うとエンコード、デコード速度は低下し、カットも IDR フレーム単位でしかできなくなります。
Weighted Prediction:
Weigthed Predictionを使うと参照フレームに「重要性」を付ける事が出来ます。例えば、直前の映像を(ブライトネス方向に) スケーリングできます。
これは特にフェードのある場面、後続の映像が直前の映像によく似ている場合に効果的で す。
明転で明るさが増す場合は除きます。また、フェードを使った場面転 換のような、クロスフェードには効果がありません。
Rate Distortion Optimisation (RDO):
RDO を使うと、エンコーダは2種類の選択肢があるような場合に、それがいかなる局面であれ、最も効率の良い符号化方式を選べるようになり ます(例えば インター符号化とイントラ符号化のどちらを選ぶか、モーションサーチ方式の選択、などなど)。
RDO はAVC/H.264 仕様書の定義にありません。しかし、この新しいアプローチを最初に導入したのはH.264レファレンスソフトウェア(JM)です。他のコデックもRDOを 組み込む事が出来ます。例えば、既にRDOを装備しているXviDのVHQモードのように。
現 在入手可能なAVC/H.264の実装は以下の通りです。
x264、Nero、Apple、Sorenson、Elecard、Moonlight、VSS、mpegable、Envivio、Hdot264 (binary)、DSPR、JM (レファレンスソフト) (binary)、ffmpeg、Philips、FastVDO、Skal、Sony、その他いろいろ。
現 在の実装の中には非常に低速なものがあります。
現在、x264とNeroDigitalの AVCエンコーダは良い速度と画質を実現しているように見えますが、AVCが非常に先進的なビデオ符号化形式である事に変わりはなく、古いCPUでの エンコード・デコードは非常に時間のかかるものになるでしょう。
DVD フォーラムとBlu-rayディスクアソシエーションが現在一般的なDVD フォーマットの後継を目指して活動しています。これはいわゆる High Definition コンテンツ (現行DVDより大きな映像サイズ)と呼ばれる物で、名称をHD-DVD と BD-ROMと言います。
HD-DVDでは、 MPEG-4 AVC/H.264は対応必須のビデオコデックです(こ こに書かれている通り)。
Blu-rayも、MPEG-4 AVC/H.264をビデオコデックに含めました(こ こ(pdf直リン)にあるように)。
以上の事から、AVC/H.264 は、現在DVDの中で使われているMPEG-2 のように、広くサポートされる次世代ビデオフォーマットになるものと思われます。