teematsu @ ウィキ
MP4Boxでの変換
最終更新:
teematsu
変換時のコマンドライン
-
1. mp4box file.ext
file.extを書き換え、上書き -
2. mp4box -out new.ext file.ext
file.extを書き換えて、new.extに出力。file.extはそのまま残る。 -
3. mp4box -add file.ext new.ext
file.extのデータを取り込んで、新しい動画new.extを作る。
"-new"の使い方がわからない。
2の場合と違い、3は元ファイルの情報が書き換えられる項目がある。例えば、UserDataBox が削除されるため、タイトルとかcopyrightだとかの情報は引き継がれないだろう。
変更・削除されるデータの例:
- MovieHeaderBoxのCreationTime, TimeScale
- TrackHeaderBoxのCreationTime
- HandlerBoxのName ("VideoHandler" → "GPAC ISO Video Handler")
- DecoderConfigDescriptor の maxBitrate, avgBitrate
- MPEGAudioSampleDescriptionBox の SampleRate (1000→48000)
- UserDataBox 削除
HTTPでのストリーミング(プログレッシブダウンロード)向け処理
以下2つの処理を実行したいとする
- a. moovボックスの後ろにmdatボックスを移動
- b. ビデオデータとオーディオデータのインターリーブ
mp4box -inter 500 file.ext
※ 前述の1の書式の場合
500はデータをどのくらいの長さに区切ってインターリーブするかをmsecで指定。
bは実施せずに元のファイルのチャンクとインターリーブをそのまま生かし、aのみ実施する、ということはできないらしい。 インターリーブをまったくせずに、ビデオデータの後ろにすべてのオーディオデータを持ってくる場合は -inter 0 を指定。
何が書き換わるか
T-01Cで録画した動画を変換した場合
-
MajorBrand, AlternateBrandの変更
MajorBrand: 3gp5 MinorVersion: 0
AlternateBrand: isom, 3gp5, 3gp4, mp41, mp42 - mdat (MediaDataBox) をmoovの後ろに移動
- chunkを再構成 (元よりchunk数が増え、chunk内のsample数は減らされていた)
- mdatの移動とchunkの再構成に合わせて、stsc (SampleToChunkBox), stco (ChunkOffsetBox)を変更
(audioは未調査)