Deap Peace

イラストやデザイン、買ってみてよかったものや日常のちょっとした出来事をダラダラ書いていきます。

DocomoのAndroidスマートフォン「Xperia」への動画エンコード【FFmpeg記述式】

2010-04-18 07:37:31 | 【PDA】Docomo SO-01B Xperia
昨日は沢山のご訪問本当にありがとうございました♪♪

晴れたーーーー

東京の空は雲ひとつない快晴ですね!
昨日は雨でほったらかしになってたお洗濯物も今日はどんどん洗って乾かせますね♪

はぁ~本当に気持ちがいい一日になりました


Xperia用の携帯動画変換君+FFmpegの式が出来上がりました!

ひーーっっちょっとお待たせしちゃいました
ようやくXperia用の携帯動画変換君+FFmpegの式が出来上がりました♪♪

ここからは一般的によく使われてる携帯動画変換君と最新のFFmpegを使っていくので、「え?フツーの携帯動画変換君とは違うの?」という人は前に書いてた記事を参考にしてFFmpegを組み込んでください♪

動画のソースは前回作ったものをエンコードするのを前提に作ってみましたorz


【★注意★】こっちのエンコード式はFFmpegリビジョン「r18714」までの設定ファイルです。それ以降のFFmpegを組み込むとこの式はエラーを吐いてしまうので、さらに下のリンクから別のファイルをダウンロードしてくださいorz

今回も設定ファイルは絵くらべるねっとアップローダー様に置かせていただきました♪♪

ダウンロードパスにxperia(半角小文字)で入力して「download」ボタンを押すと「ダウンロードはこちら」というリンクが表示されるので、そこからダウンロードしてください♪

あとはdefault_settingsフォルダに投げ入れてset upを叩くだけの簡単設定になってます♪


FFmpegのリビジョンがr18714以降の人はこちらから

上の式はリビジョンの古い…まだAACがFFmpegの中だけで全部エンコードできてた時のですが、新しいリビジョンはそれが出来ないので音声をMP3にして後はlibx264のデフォルト値エラー回避をしています。

2010年4月18日7:00改定とお詫び

コメント頂いてましたUnknownさん本当に報告ありがとうございました&本当にスミマセンでしたorz

今日までに書いてた最新FFmpegの記述式だとH.264+MP3の形式で一応MP4というファイル形式にしてたのですが、XperiaのMediaScapeがそれだと音声を認識してくれないコトがわかりましたorz

最新FFmpegを入れている人はちょっと手間が必要になっちゃいますが下の準備をした上でエンコード式をダウンロードして使ってくださいorz

…こんなネットの片隅ブログの記事でも参考にしてくださっていろいろ試して頂いた方々に、本当にホントーにありがとうございましたorz
すごい嬉しいです

…私もまだまだ勉強が必要ですね
一応、こっちの式はちゃんと私のXperiaで映像、音声共にちゃんと出力されているのを確認しましたので大丈夫…だと思いますorz


まずはこのリンクをクリックしてNeroサイトに飛んでください。


























準備が終わったらこっちのはウィンプラス様のアップローダに設定ファイルを置きましたので使ってみてくださいorz

2010年4月29日追記

上のリンクですが、アップローダが結構メンテ中でダウンロードができない場合がありますので、そっちがリンク切れしちゃってましたらこちらのリンク先「絵くらべるねっと」様のサーバーにも同じものをアップしてありますのでそこからダウンロードしてみてくださいorz


ダウンロードパスは全部同じでxperiaです


最新FFmpegの記述式は新しく組みなおしました

リビジョンの古い方のは各CPUごとに28種類の設定が選べるようになってますが、最新FFmpegの式は倍の56種類に増やしました♪
一応、こんなところにこだわってみましたorz

1.音声を専用のエンコーダで圧縮するので容量削減のため256kbpsで調整
音声は専用のエンコーダで圧縮しますので、音質の確保はビットレート多少甘めでも大丈夫だと判断してlibaacを使う古いリビジョン用より気持ち甘めの256kbpsで調整しました♪

2.-threadsオプションは5まで
…実際に最適化バイナリを使って-threadsオプションに5以上を宛ててもそれほど効果が見られませんでしたので、思い切って5まで(4CPU対応まで)にしました。

3.50kbps単位でマニュアル調整を可能に
古いリビジョンの方は各CPUごとに100kbps単位でビットレートを刻んで28種類の設定が選べましたが、こっちのはさらに増やして56種類にしてみました♪
50kbps単位での調整が可能になりましたので、エンコードをする本人が一番納得できる画質と容量のビミョーなバランスを得ることができます。

画質保持最低ライン700kbpsから
このエンコード式は結構複雑なオプションをいくつも重ねてそれでも画質を確保する方法を取ってるので、ビットレートが上がれば上がるほど同じビットレートでエンコードした他のエンコーダよりも画質が上がるようになっています。

それなのでそのオプションがエラーを吐くか吐かないかの最低ラインが大体650kbps…なのですがちょっとそれだと心配なので気持ち底上げして700kbpsからにしました。
古いリビジョン用のは800kbpsからのスタートになっていますので、もうちょっとだけがんばった感じになりますorz


現在調整中の式はこんな感じにしてみようと思っています
まだ上に挙げてる2つのエンコード式は私の中では全然不完全ですorz
…今のところまだちゃんとした式は出来上がってませんが、Xperiaとの調整中の式として

1.シークのしやすさアップが出来るかどうか?
多分私の式を見てみて映像に詳しい方は気づいてらっしゃると思いますが、全部固定ビットレートでエンコードするのは次にこの問題が解決できるかどうかがあったりするからですorz


2.低ビットレートでもより画質を確保する手段があるかどうか
一応、こっちも同時進行で調整中ですが、オプションを調整したりするコトでもっと低ビットレートでもXperiaで画質が確保できるかどうかを試してますorz
こっちの問題はシークよりもちょっと難しいのでまだまだ調整に時間がかかりそうですorz

こんな感じですね
また気が向いたらテキトーに覗いていただけたらいいなぁ…とか…あつかましいことを思ってみたりしてますorz


関係がありそうな他の記事

Docomo SO-01B Xperiaに関するブログリンク
記事が膨れ上がりそうですのでこっちで一括ターミナルしてますorz


最新の画像もっと見る

137 コメント

コメント日が  古い順  |   新しい順
Unknown (Unknown)
2010-04-17 14:14:10
画質は最高です
でもxperiaで音が出ません><
PCだと問題ないのですが・・
返信する
す…スミマセンorz (Trancend(管理人))
2010-04-18 05:03:36
ちょっとレスが遅くなてしまいましたorz

今確認してみましたら、
私の式に問題がありましたorz

Xperiaに搭載されてる「MediaScape」は
読み込めるコーデックの範囲がすごく狭いみたいで
r18714以降用に作ったH.264+MP3だと
MediaScapeが音声を弾いてしまうのが分かりました。

ご迷惑をおかけしちゃいまして本当にスミマセンorz

ちょっと一旦ブログからそっちのダウンロードリンクを
取り下げさせていただきますねorz

そうなると…
解決策はFFmpegの古いリビジョンを

http://blog.k-tai-douga.com/article/28552287.html

こちらのサイト様からダウンロードさせていただいてくださいorz

最新のFFmpegリビジョンでAACをエンコードした方がいいのかXperiaに何らかのプレイヤーソフトを入れた方がいいのかはまた追って記事を修正して書かせていただきますねorz
返信する
新しく組みなおしましたorz (Trancend(管理人))
2010-04-18 08:09:58
> Unknownサマ★


> 画質は最高です

Xperiaの画面で「細かすぎて目が痛い!」
っていうくらいの画質を見ちゃうと
音声が再生できてないのの残念さはちょっと…でしたよねorz

スミマセンでした

もしもよかったら、ちゃんと音声も出る式を作り直してみましたので、
ぜひぜひ使ってみてくださいね♪

いいスマートフォンライフになるコトを
お祈りしてます♪

こんなブログでも参考にしていただけたのは
本当に嬉しかったです♪
ありがとうございました
返信する
Unknown (Unknown)
2010-04-18 20:47:47
御丁寧にありがとうございます。
古い方のリビジョンで試してみます。
新しい式にも期待してます。
陰ながら応援しておりますので!
返信する
他機種で使いたいです (Masa)
2010-04-18 22:13:31
画質重視でのセッティングとの事で非常に気になり試させていただいたのですが、
自分の機種(HTC Desire)では音声のみ再生され映像が一切表示されませんでした。
iniファイルを読むと解像度が指定されていたのでDesireの解像度に合わせ800x480に書き換えてみたのですが
今度はドラッグ&ドロップ直後にエラーでエンコード出来ず…。
アスペクト比16:9の指定が不味いのかとも思い設定から消してみてもエラーでした。
他機種なのでサポート外とは思いましたが、何かアドバイス頂けないでしょうか、お願いします。

返信する
ありがとうございます♪ (Trancend(管理人))
2010-04-19 12:39:38
> Unknownサマ★

> 古い方のリビジョンで試してみます。

ありがとうございますorz

FFmpegは新しければ新しいほどいろんなオプションが使えるようになってるので、その分式も複雑に、より細かい設定ができるようになってる…っていうただそれだけで、実は画質…っていう問題では古いリビジョンのでも全然十分な感じだったりしてます(笑)


> 陰ながら応援しておりますので!

ひっっはっっはい!!
ありがとうございます

また今度来ていただけた時には新しい設定がアップできてるように頑張りますね♪

すごいやる気出てきました!
こちらこそいろいろ本当にありがとうございます♪
返信する
ありがとうございます♪ (Trancend(管理人))
2010-04-19 13:25:16
> Masaサマ★

こんにちは♪
わ…私程度の式を他機種でも使っていただけるなんてすっごい嬉しいです♪

ありがとうございます

えぇと…早速ですがいろいろと考えてみましたorz


> 自分の機種(HTC Desire)では音声のみ再生され映像が一切表示されませんでした。

orz
…なるほど…同じAndroidスマートフォンですが映像が出力されていない…とすると式をちょっと変えないといけなさそうですorz


> iniファイルを読むと解像度が指定されていたので
> Desireの解像度に合わせ800x480に書き換えてみたのですが

なるほど…orz
まずは解像度がちょっと違ってるかも…ですorz

800x480は16:9ではありませんので、それで動画を作っちゃうとビミョーに縦長のモノになっちゃいますorz

もしも画面解像度であわせると800x448が正解ですね♪


>今度はドラッグ&ドロップ直後にエラーでエンコード出来ず…。
>アスペクト比16:9の指定が不味いのかとも思い
> 設定から消してみてもエラーでした。

そうですねorz
実はこの式は画面が16:9なのを条件にしたオプションが多いですのでこのアスペクト比オプションを消しちゃうと他のオプションも全部いじらないといけないようになってたりしますorz


ここから解決策に繋がりそうなモノ…を考えると、まずは

1.Desireにインストールされてる再生アプリはどの解像度までに対応しているか

2.Desireにインストールされてる再生アプリはH.264に対応しているか

3.Desireにインストールされている再生アプリはどのプロファイルレベルまでに対応しているか

の情報が必要だったりで、私の方だとそれがわかりませんでしたためダメ元でいくつかIfで考えてみましたorz

FFmpegリビジョンはr18714までのを使っています♪


1.解像度の制限が加えられてた場合

→安全値として640x360を選択

[Item0]
Title=【2CPU】H.264 23.97fps 800kbps Stereo/256kbps
TitleE=[2CPU]H.264 23.97fps 800kbps Stereo/256kbps
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -threads 3 -aspect 16:9 -vcodec libx264 -level 13 -coder 1 -bufsize 128 -g 250 -trellis 2 -subq 7 -qns 3 -mbd 2 -me_range 7 -me_method tesa -partitions parti4x4+partp8x8+partp4x4 -cmp chroma -flags bitexact+mv4+qpel+aic+obmc+gmc -async 100 -s 640x360 -r 24000/1001 -b 800k -acodec libaac -ac 2 -ar 44100 -ab 256k "<%OutputFile%>.MP4""


2.再生アプリがH.264非対応の場合

→汎用的なXvid+MP3コーデック、AVIコンテナを指定

[Item0]
Title=Xvid ビデオ800kbps 23.976fps ステレオ 256kbps
TitleE=Xvid Video 880k 23.976fps stereo 256kbps
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -timestamp "<%TimeStamp%>" -threads 3 -aspect 16:9 -vcodec libxvid -g 200 -qmin 1 -qmax 8 -qsquish 1 -trellis 2 -subq 7 -sc_threshold 1 -qns 3 -mbd 2 -me_range 7 -partitions parti4x4+partp8x8+partp4x4 -cmp chroma -flags bitexact+mv4+qpel+aic+gmc -async 100 -vtag XVID -s 800x448 -r 24000/1001 -b 800k -acodec libmp3lame -ac 2 -ar 44100 -ab 256k -f avi "<%OutputFile%>.avi""


3.再生アプリがCABACに対応していない場合

→Case1:再生可否要因のCabacをOFFにしてみる

[Item0]
Title=【2CPU】H.264 23.97fps 800kbps Stereo/256kbps
TitleE=[2CPU]H.264 23.97fps 800kbps Stereo/256kbps
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -threads 3 -aspect 16:9 -vcodec libx264 -level 13 -coder 0 -bufsize 128 -g 250 -trellis 2 -subq 7 -qns 3 -mbd 2 -me_range 7 -me_method tesa -partitions parti4x4+partp8x8+partp4x4 -cmp chroma -flags bitexact+mv4+qpel+aic+obmc+gmc -async 100 -s 800x448 -r 24000/1001 -b 800k -acodec libaac -ac 2 -ar 44100 -ab 256k "<%OutputFile%>.MP4""


今のところ考えられるのはこんな感じですねorz

解像度の指定…はどっちかと言うとスマートフォンとかだと考えにくかったりもします…っていうのも一般的に解像度に制限が入ってるのはDAPとかPMPが多くて、もしもスマートフォンで解像度の制限を受ける場合があるとすると、専用のデコーダチップやコプロセッサが搭載されてて再生ソフトがそれを叩く仕様になっている場合だけなんですよねorz


一番考えられるのは2番目の要因と3番目の要因です。
再生ソフトがH.264に対応していない場合には、一般的には対応外コーデックのエラーを吐かないといけないところが個人レベルで作ってるソフトだったりするとそれを吐かずに開いちゃうので音声だけしか再生されなかったり…っていうのもあります。

3番目の要因に関しては一般的なスマートフォンでよくある原因で、初期のiPodやiPhoneとかだとこのCABAC(これをONにすると映像の情報処理量が大きく跳ね上がるので画質を上げられます)を禁止してるケースも少なくありませんでした。


…多分どれかの式でいけつはず…ですが、もしも全滅でしたらスミマセンorz
返信する
ありがとうございました!! (イモ子)
2010-04-19 22:03:10
ありがとうございました!!

さっそく使わせていただきました。
説明文がとてもわかりやすく、導入しやすかったです。

とてもキレイで大満足です!

お疲れ様でした!!
返信する
うまく行きましたみたいで何よりです♪♪ (Trancend(管理人))
2010-04-20 01:06:20
イモ子さんこんばんは

> 説明文がとてもわかりやすく、導入しやすかったです。

い・・・いえいえいえorz
こここちらこそ覗いていただけて
本当にありがとうございます!

…でも、結構画像で説明されても実際の作業自体が
意外に大変だったりしましたよねorz


> とてもキレイで大満足です!

ぉぉおっっ!!
ぁぁよかったです

あのカッチリ決まった時の映像栄えは
すっごいですよね♪♪

うまく行きましたみたいで私もすっごい嬉しいです


> お疲れ様でした!!

あっっありがとうございます!

こちらこそ、こんなネットの片隅ブログを
参考にして頂いて本当にありがとうございました♪♪

イモ子さんのスマートフォンライフが楽しいモノになる事をお祈りしてます♪
返信する
ありがとうございます (taka)
2010-04-21 18:24:23
「XPERIA 動画変換」でググってこちらに行き着きました。
とてもわかりやすい説明で、素人の僕にでもちゃんと導入できました。
画像がとても綺麗で驚いてます。

本当にありがとうございました。

返信する

コメントを投稿