LoginSignup
0
0

More than 5 years have passed since last update.

Objective-C で avi ファイルの FourCC を書き換える

Last updated at Posted at 2013-05-18

avi の特徴

0-4 バイト: RIFF RIFF ヘッダー
8-12 バイト: AVI RIFF の FourCC
12-16 バイト: LIST
20-28 バイト: hdrlavih データフォーマット定義リスト、avi メインヘッダー
96-104 バイト: strlstrh ストリームヘッダーチャンク
108-112 バイト: vids ならヘッダの次にビデオストリームがある
112-116 バイト: FourCC
164-168 バイト: strf ストリームフォーマットチャンク
188-192 バイト: FourCC

QuickTime だと 188-192 の FourCC 書き換えが影響するっぽいので、ここをいじれば良いかもしれない。
YUY2 な avi は yuvs にすれば QuickTime で読める。

http://msdn.microsoft.com/ja-jp/library/cc352264.aspx
http://www.usagi-goten.com/jp/AVI_structure.html

書き換え

NSFileHandleでシークして上書き
NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:aviFilePath];

NSData *newData = [NSData dataWithBytes:(void*)[fourCC cString] // 最近はDeprecatedメソッドらしい。別の方法で
                             length:4];

[fileHandle seekToFileOffset:188];
[fileHandle writeData:newData];
[fileHandle closeFile];
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0