2010年02月18日

iPhone でも Flash でも再生できる mp4 を ffmpeg で作る方法

なんか悔しいからもう一エントリ。まぁ、メモ程度です。

動画にはコーデックとコンテナというのがあり、詳細はともかく、iPhone でも Flash でも再生できる mp4 にしておくと、後々なにかと便利じゃね、ってことでメモ晒しときます。

やってることは H.264/AAC コーデックで MP4 にして、MP4コンテナをごにょごにょいじると iPhone からも Flash からも再生できるmp4が出来上がるというやつです。

で、スーパーフリーウェア ffmpeg を使いましょう。
こいつはバージョンアップが激しいので、yum とかつかわず、ちゃんとソースコンパイルすること。

- ffmpeg

で、この ffmpeg をコンパイルする前に H.264コーデックのエンコーダーをいれておきます。
ありがたいことに VideoLan から フリーの h264/avc encoder が配布されています。

- VideoLAN - x264

一部アセンブラでかかれているので、必要なら yasm をいれておきます。

# yum install yasm

AAC は普通あるので、別途いれる必要はないでしょう。

で、ffmpeg をコンパイル。configure オプションは

# ./configure --enable-libx264 --enable-gpl --enable-shared

とかですかね。これで x264が入ります。

こいつを使って ffmpeg かけると mp4 ができるのですが、ipod で再生できるように vpre をつける必要があります。

小さいサイズの動画ならこんな感じでしょうか

# ffmpeg -i (元動画) -vcodec libx264 -acodec aac -crf 22 -vpre hq -vpre ipod320 -threads 0 -ab 192k

-vpre オプションが複数あってややこしいですが、crf と hq がクオリティ、その後の ipod320 がipod 対応(画面小)です。

上記はワンパスでエンコードしてますが、クオリティ高めるならツーパスでエンコードするといいでしょう。
え、なんちゃらパスの詳しい説明ですか?いやー、まぁ、メモですから。これだけキーワードあれば日本語でもいろいろひっかかりますので調べてみてください。
こちらなんか参考になると思いますよ。

- B地区ex - お勉強:マルチメディア - FLV動画のエンコード

あと英語なら

- robert.swain » FFmpeg x264 encoding guide

です。

さて、これで完成!かと思いきや、できあがった mp4 は逐次再生ができません。

インデックス情報がファイル末尾にあるからで、これを前にもってこないと「全部ダウンロードするまで再生できない」という状態になります。面倒ですねー


で、コンテナ操作には MP4Box とかを使います。
このコマンドは GPAC というライブラリに含まれています。

- GPAC

ここから GPAC (と extra libs) をダウンロード・コンパイルします。

すると MP4Box ができるはず。
なお、コンパイルに失敗する場合、たぶん glut の開発ライブラリが入ってないんだと思います。

# yum install glut-devel

こうして手にいれた MP4Box をつかって、さきほど生成した mp4 を変換します。


# MP4Box -add (さっきのMP4) -new (新しいMP4)


こちらの変換はそれほど時間かかりません。

これで、Flash でも iPhone でも再生できる MP4 が完成です。

まぁ、一つのやり方ということで覚えておいても損はないかと思います。

※ただ、この MP4、iPod Touch 2G + iPhone OS 3.0 の Safari からだけ再生できないので、、それが謎なんですが・・・


ふー、ということで参考になれば!

投稿者 aka : 時刻 16:47 | 固定リンク | コメント (0) | トラックバック (0)

フレッシュリーダー、ちょこっとバージョンアップしたんですけどね・・・

放置してませんから!

フレッシュリーダー、ちょこっとバージョンアップしました。

ようやく ioncube loader が対応したとのことで、全プラットフォーム PHP 5.3 対応、というのは表向きの理由です。

実は「らばQ/ライブドア」問題、というのがあり、フォーマットの話しになりますが、ライブドアが配信する RSSフィードの <channel> 要素の中に <link> 要素が複数入っているという、とてもとても残念な仕様になっておりまして、っておい!

今確認したらライブドア側でこっそり対策されてるじゃないかぁ!
じゃあ、このアップデートはなんだったんだ・・・・・ぁぁぁ


えっと、すいません。そんなわけで、アップデートの必要は実はなくなりましたが、が、このまま公開します。

緊急のバージョンアップの必要はありません。

それと、メールや対面でライブドア問題ご連絡いただきましたみなさま、ありがとうございました。


フレッシュリーダー

(たまらんな・・・)

投稿者 aka : 時刻 16:23 | 固定リンク | コメント (0) | トラックバック (0)

2010年02月16日

TwitCasting バージョンアップしましたよ、と。

iPhone から手軽にライブ配信できる「TwitCasting Live」、無事 Ver.1.1 が公開されました。

先週火曜日に提出してから丸一週間かかりました・・・審査に。マイナーアップで1週間は結構きついですね。。しかし。

で、不具合とかいろいろ修正したので、是非バージョンアップして試してみてください。

以下、改修点です。


■音声のクオリティが格段にアップしました

正直初期版の音声クオリティは酷いものでした。すいません。
音質は fps によって可変的に変わるのですが、最大で 100 倍良くなっています(情報量的に)。
なお、サンプリングレートは 11kHz です。ピアノの一番高い音で 4kHz なので、当面はこれで大丈夫かと。


■画質のクオリティが可変になりました。

これまで画質固定でフレームレートのみで帯域対応していたのですが、若干画質にも幅を持たせるようにしました。
これにより Wifi 接続 (10~7fps) での画質がアップしています。
3G回線(5~3fps) では音質のみアップとなります。


■ 56kbps でも配信可能に

従来バージョンでは、56kbps 程度の回線速度(上り)だと配信が厳しかったのですが、今回から大丈夫になったと思います。

なお、えっと、ちょっと申し上げにくいのですが・・・実は計算を間違えた影響で 56kbps の回線速度での低速 fps (0.4~1.0fps) では音質を落としすぎてしまいました。。。(汗)
56kbps 回線での音質対応は次回のバージョンアップということでご容赦ください。。とりあえず 1fps でてればなんとか、、なのですが・・・
※韓国(56kbps)のユーザーさんからも、今回のバージョンで使えた!との連絡がありました。嬉しい&ありがたいです。


■スクリーンキャスティングの防止措置をいれました

他のアプリからのプッシュ通知や電話の着信画面が配信されるという致命的な問題があったのですが、今回のバージョンで対応しました。

twitcasting-11-1.png

変換候補などが映像画面などに溢れてくると、画面上部に「鍵」アイコンが表示されます。
この状態では、視聴者には画面は送信されません。
※画面が止まった状態になります。音声は配信されます。(もうすぐ視聴者側でも「画面ロック中」の表示をいれる予定です)

なお、この判定方法ですが、■LIVE と書いてある上の黒い線が防護線となっていて、この防護線になにか別のものが表示されるとロックがかかるようになっています。
そのため、防護線をうまくまたいで表示されるもの(といっても、意味のない虫眼鏡くらいですが)は配信されることがありますがアラートメッセージなどはすべて防ぐと思います。


■電話受信画面の配信防止措置をいれました。

上記と同じで電話を受信した場合も同様に画面がロックされます(音声は配信継続されます)。

電話を受信した場合、その電話をとる(電話にでる)とアプリとライブが終了します(したがって、電話の会話が配信されてしまうようなことはありません)。
電話をとらなかった場合、またアプリに戻ります(ライブ配信が継続されます)


■電池残量の表示

これもリクエストが多かったものなのですが、電池の容量を表示するようにしました。
あと、ライブ配信時間ですね。現状では 30 分という上限を設定させていただいていますので・・・。

twitcasting-11-2.png

対抗するわけではないですが、電池の減りは Ust Broadcaster ほど大食いではないと思います。が、他のアプリより電池を食いますので(特に iPhone 3G not S)、どうぞ計画的に。


■TwitCasting の URL 表示

Twitterへの POST 時に、TwitCasting の URL を入れるかどうかを選択できるようになりました。
これで、ライブ開始する前に「今からライブ開始するよー」というツイットを投げることができるようになります。

なお、先日の改修で、ライブの URL はずーっと固定になりました。 http://twitcasting.tv/(あなたのユーザー名)


といったところでしょうか。

その他、細かいバグ(twitter のメールアドレスでログインするとライブ配信できない)などの問題に対応しています。


なお、その他多くいただいた要望としては「モイ!ってなんだよモイって!!やめてくれ!or 自分で設定できるようにしてくれ!」というものがあるのですが、すいません、これには今回対応してません。

対応してないどころか、「モィ」から「モイ」(大文字)に進化させてしまったりしています・・・


フィンランド語の「やぁ!」という挨拶なのですが、Ust の「Hey」に対抗するため、もうしばらくこのままでいこうと思います。

あ、あと iPhone でのライブ閲覧に「音声」をつけて欲しい、というものも要望としてたくさんいただいています。
これもいろいろ方法検討したのですが、ビュワーアプリを用意するしかなさそうです。ビュワー自体はできているので、あとはどういったUIにするか・・・なにしろ画面制約がきついので・・・。
これも次回のバージョンアップでいれようかと思います。

ということで、よろしければ新しいバージョンの TwitCasting 使ってみてください。

iTunes AppStore

※あ、バージョンアップするとすぐ落ちる!というレポートがいくつか来ているのですが、メモリの問題かと思いますので iPhone を再起動してみていただけると助かります。

TwitCasting は1バイトたりともメモリを残さないように注意して作ってあります(まぁ、バグが無いとは言い切れませんが・・)

そしてご要望など、引き続き真ん中の「Idea」ボタンで募集していますので、どうぞお気軽にお寄せください。


あ、それとTwitCasting には強制バージョンアップの仕組みを組み込んでいますので、1~2週間ほどで Ver.1.0 はライブ配信できなくする予定です。。。どうぞご容赦くdさい。

投稿者 aka : 時刻 15:25 | 固定リンク | コメント (9) | トラックバック (0)

2010年02月10日

フレッシュリーダーに Twitter への投稿 (Retweet) ボタンを設置する方法

全国のフレッシュリーダー・ファンのみなさん、こんにちは。

もはやRSS未対応サイトも Google Reader で読めるとか、「いまさら、それ、おまー」なんてことは言いません。

freshreader-rewteet.png

で、久々にFR情報ですよ。フレッシュリーダーの各エントリの横に「Retweet」ボタンを設置する方法です。

実はフレッシュリーダーには「プラグイン機能」というのがございましてー

- マニュアル - フレッシュリーダー - プラグイン機能


コレ使うと簡単にできます。

具体的には、フレッシュリーダーのインストールフォルダの直下に

plugin/plugin.txt

というディレクトリとファイルを作成し、plugin.txt に


<a href="http://twitter.com/home/?status=RT:%20${title_escape}%20${url_escape}">[RT]</a>


と書けばOKです。これで RT ボタンが表示されて、クリックすると Twitter にタイトルとURLが表示された状態になります。

まぁ、bit.ly とかの URL 短縮には対応していませんが・・・それはそれ、これはこれで便利だと思います!


ということでよろしければお試しください。

もちろん最初に RT するのはこのブログエントリってことでよろしく!

(いやいや。。。なんか最近キャラ変わってきたな・・・極限に時間が足りないからかな・・)

- フレッシュリーダー


投稿者 aka : 時刻 13:48 | 固定リンク | コメント (1) | トラックバック (0)

2010年02月03日

Twitterしながら映像をライブ配信できる「TwitCasting」を公開しましたよ、遂に。

遂に・・・リリースしましたよ。できましたよ。。

今年元日 AM1:00 から作り出した渾身の新サービス「TwitCasting Live」。iPhone アプリ + Web サイトです。

サービスの説明の前に2時間くらい苦労話を書きたいところなんですが、まぁそれはさておき、ちょっと説明しますね。

「TwitCasting」は、iPhone 上で「映像と音声のライブストリーミング」をしながら「Twitter」できるプロダクトです。
一言でいえば、映像配信つき Twitter クライアント。

特徴は、Joker Racer プロジェクトでも使った「遅延ゼロ配信」です。

映像の遅延は、0.1秒~0.3秒くらいなので、ほとんど遅延を感じることなく映像を配信することができます。
なんというか、遠隔ミーティングにも使えるくらい。

というか、これ、ラジコンに TwitCasting 入りの iPhone 乗せたらブラウザで操縦できますよ、絶対。

iPhone アプリなんですが、AppStore で無料配布中です。お暇なときに是非いれてみてください。

映像は 3G ネットワークでも大丈夫です。多少カクカクしますが、最適なフレームレートに自動調整するようになっています。なんせ日本国内でテスト・調整したので、国内利用についてはほぼ問題ないかと思います。


また、Webサイトは標準ブラウザで閲覧できることにも注力していて、ライブの映像や録画ムービーは、パソコンのブラウザはもちろん、iPhone / iPod Touch のブラウザでも閲覧できます(TwitCastingアプリをいれなくても大丈夫です)。
※ライブをiPhoneのSafariで見たときだけ音声でないんですけどね・・・ま、これからの課題ということで。


あと、映像は 3.0倍ズームまで対応していますので(もちろん光学ズームじゃないですが)、ライブ配信なんかでは楽しめると思います。

詳しくはムービーでどうぞ。


と、もう1月はこれにかかりっきりだったので他にもいろいろあるのですが、サービスについてはまだまだこれからだと認識しています。
実際に使ってみて、いろんな意見いただけると嬉しいです。

なお、iPhone 3G でも動作しますが、3GS での利用を悶絶おすすめします。3G だと CPU の限界を超える感じでフレームレートが伸びません。3GS 速!


で、最後に、USTREAM あるのになんでこんなの作ったの?という点なんですが、もちろん大金を手にしたUSTREAMに真っ向から立ち向かおうなんて思っていません。

将来USTREAMに買収してもらえれば・・・ 今年の宣言通り、これをベースに「モバイル+ソーシャル+ガジェット」を組み合わせて面白い方向に持っていこうと思っています。


ということで、長々とすいません。よろしければ是非。


http://twitcasting.tv/

投稿者 aka : 時刻 15:06 | 固定リンク | コメント (20) | トラックバック (0)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _