タグ別アーカイブ: ffmpeg

SAR(PAR) DAR ってなんですか?

タグ: , , , | 投稿日: 投稿者:

久々のいかおです

ffmpeg を使っているとぶち当たります(いや、それ以外でも)

私はいつも、えっと、なんだっけ?ってなるので書いておきたいと思いました

sar(par)が1:1の場合は良いのです。ここが妙ちくりんなことになってくると登場人物が不要に痩せたり太ったりします。

SARがSample Aspect Ratioで、PARがPixel Aspect Ratioです

DARはDisplay Aspect Ratio・・・・・

「そんなこたぁ聞いてねぇんだよ」

と言われそう。ここぢゃないんです

ちなみに、SARとPARは同じことです。

で、いっつも悩ましいのは

SARに変な値が入っているとDARもパルプンテ(実は違います)なんですね。だからスッキリするために

計算式をメモるわけです。

SARはpixelの形を表します。ピクセルの横幅と縦幅の比です

DARは出来上がった画像の縦横比になります。

だから、元々のピクセル解像度にそれぞれSARの比率をかけるとDARになるってことです。つまり

元のpixel解像度が

720×480

で、SARが8:9なら

720 x 8 : 480 x 9 = 4 : 3

で、DARが 4:3 となる訳です

じゃあね、

720 x 540 の画像を 16:9 で出したい場合SARはどうなるんですか?

こうするんですよ(私もそのまま覚えこむことにしました)

元画像の高さ x 出したい横幅 : 元画像の幅 x 出したい縦幅比

540 x 16 : 720 x 9 = 8640 : 6480 =  4 : 3 (SARね)

・・・おおおお

720 x 480(ntsc)を16:9で

480 x 16 : 720 x 9 = 32 : 27

おお・・・なんだか呪文っぽくなってきたぞ

そうそう、パルプンテだったやつは

pixelが720×480でSARが 40:33 でDARが 20:11ですってよ!

そうか、そうかDARにするためのSARだから

480 x 20 : 720 x 11 = 40:33

ああ、そういうことだったのか。

私はこの理解に苦しんだんだけど、同じつまづきした人っていないの?


Android用 FFmpeg を利用した Androidアプリ

タグ: , | 投稿日: 投稿者:

お久しぶりです。
takeです。

前回の記事はこちら

前回 libffmpeg.so のビルドが完了したので、今回はこのライブラリを使ってJNI部分を作成します。

JNIを作成するため、Eclipse(luna)に以下の設定が必要です。
・C/C++開発環境(Help->Install New Software)
http://download.eclipse.org/releases/luna を入力し、以下を選択する
・Programming Languages -> C/C++ Development Tools
・Programming Languages -> C/C++ Development Tools SDK
・Programming Languages -> C/C++ Library API Documentation Hover Help

・NDKプラグインのインストール(Help->Install New Software)
https://dl-ssl.google.com/android/eclipse/ を入力し、以下を選択する
・Developer Tools -> Android Native Development Tools

・NDKの設定(Window->Preferences->Android->NDK)
前回の記事でNDKを展開したディレクトリを指定します。

以上で設定は終わりです。

次は、プロジェクトを作成します。
File -> New -> Android Application Project を選択します。
アプリケーション名を適当にいれてプロジェクトを作ります。

プロジェクト作成後、プロジェクトメニューから Android Tools -> Add Native Support を選択します。
JNIフォルダが作成されて準備ができました。

ここからが大変です。自分も試行錯誤した結果なので誤ってる個所があるかもしれませんがご容赦ください。

まず、FFMpegライブラリのコピーを実施します。
・jniフォルダにlibフォルダを作成します。
・build/ffmpeg/armv7/libffmpeg.so を jni/lib へ
・build/ffmpeg/armv7/include を jni/include へ

JNIフォルダにある Android.mk ファイルを編集します。

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := ffmpeg
LOCAL_EXPORT_C_INCLUDES := include
LOCAL_SRC_FILES := lib/libffmpeg.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE    := FFMpegTest
LOCAL_SRC_FILES := FFMpegTest.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_LDLIBS := -llog -ljnigraphics -lz -landroid  -ldl
LOCAL_SHARED_LIBRARIES := ffmpeg
include $(BUILD_SHARED_LIBRARY)

$(call import-module,android/cpufeatures)

※今回のプロジェクトはFFMpegTestとしています。

編集内容を保存後、プロジェクトメニューから「Build Project」を実施すると
JNIライブラリが作成されているはずです。
(I/Fがないのでなにもできませんが。。。)

長くなってしまったので、続きはまた次回!!