English - (2006/01/21 (土) 13:14:25) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
raw movieをQuickTimeのH.264 codecを使って圧縮するMac用プログラム。現状ffmpegをフロントエンドに使ったコマンドラインで、パス数指定ができます。
-[[バイナリー>http://members3.jcom.home.ne.jp/jacketplugin/raw2qt264.zip]]
-[[ソースコード>http://members3.jcom.home.ne.jp/jacketplugin/raw2qt264.source.zip]]
プロジェクトファイルも入っていますので、Xcode2.2以降(インストールオプションで10.4 Universal SDKを追加)が入っていれば、プロジェクトメニューから「アクティブなビルド構成を設定=>Release 」を選んで、ワンクリックでビルド出来ます。
2006.1.21 Universal Binaryにしました。変更3カ所のみ!
#comment
----
*使い方
% raw2qt264 Pass Kbps rawCommand outFile.mov
rawCommandはyuv4mpegpipe形式をstdoutに出す命令です。
-inFile.mpgを2パス、1000KbpsでoutFile.movに変換
% raw2qt264 2 1000 "ffmpeg -i inFile.mpg -vcodec rawvideo -f yuv4mpegpipe -" outFile.mov
-ffmpegでインターレース解除,640x480にスケース,90%クロップ
% raw2qt264 2 1000 "ffmpeg -i inFile.mpg -deinterlace -s 640x480 -croptop 24 -cropbottom 24 -cropleft 32 -cropright 32 -vcodec rawvideo -f yuv4mpegpipe -" outFile.mov
----
*メモ
・自分でプライオリティーを下げています。
setpriority(PRIO_USER, 0, 10);
・圧縮設定は createCompressionSession() で行っており、設定出来る項目と説明は以下にあります。
/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/QuickTime.framework/Versions/A/Headers/ImageCompression.h
の、Properties of compression sessions options objects.
・Key frame rate (Iフレーム出現間隔)は300コマ(NTSCなら10秒)に1コマに指定。
// Set the maximum key frame interval, also known as the key frame rate.
err = ICMCompressionSessionOptionsSetMaxKeyFrameInterval(sessionOptions, 300);
MaxPartialSyncFrameInterval・AllowFrameTimeChanges・DataRateLimits(Hard limit)等、興味深い設定もありますが、デフォルトのままにしています。
以下のAppleのサンプルコードを参考に作りました。
http://developer.apple.com/samplecode/CaptureAndCompressIPBMovie/CaptureAndCompressIPBMovie.html
先日QuickTime Session APIのドキュメントも色々出てきました。
http://developer.apple.com/qa/qa2005/qa1450.html
http://developer.apple.com/qa/qa2005/qa1455.html
http://developer.apple.com/qa/qa2005/qa1460.html
http://developer.apple.com/qa/qa2005/qa1456.html
表示オプション
横に並べて表示:
変化行の前後のみ表示: