«前の日記(2009-03-17) 最新 次の日記(2009-03-19)» 編集

ぱぱネット(仮)


2009-03-18 iPhone3.0早くこないかな [長年日記]

_ [ワンセグ野郎] LinuxでMP4変換を考える

Windowsの場合はなんてことはなく player.pl差し替え版を使えばいい。 TSConverter.exeやNeroAacDec等のバイナリを置いておけばCGIが勝手にやってくれる。ありがたや。

しかしLinuxの場合はそう簡単にはいかない... スクリプトを少し覗けばわかるが、差し替え版は ありとあらゆるパスがWindows表記 なので、 UNIX系列では再エンコード部分は動かない。音ずれ補正に必須であるTSConverter.exeを動かすために Wineで工夫したりする必要があるし、さらに どうしても見付からないんだNeroAacDec/Encのソースが! 一応本家サイトからLinuxバイナリはダウンロード できるのだが....Debian GNU/Linux etchでは

./neroAacDec: /lib/tls/i686/cmov/libc.so.6:
version `GLIBC_2.4' not found (required by ./neroAacDec)

てな感じで動かない。lennyにアップグレードしたろかと思ったけど、現状動いてるサーバを長期間止めることになるので断念。 苦し紛れにlibcとstdc++の*.debをダウンロードしてdata.tar.gzを取り出して共有ライブラリを取り出してLD_PRELOADを駆使して実行してみた。結果はセグメン(^^;

_ [Linux][iPhone] Linux上でiPhone再生可能なMP4動画を作成する

まずはワンセグではなく汎用の...29.97fpsのmp4やflvをiPhoneで再生できるように変換することを考える。千里の道も一歩から。

いろいろ試行錯誤したが、mplayer-export-2009-01-08をコンパイルしてできたmencoderを使うのが一番早そう。最初、海外フォーラムをつぶさに覗いていたのだがどれも情報が古くて mencoderはダメなのでffmpeg使いましょう みたいなことを書いてあってハマった。mplayer今年版なら大丈夫そうだ。-lavcoptsが死ぬ程長いのは、ほとんどlibx264にiPhoneが唯一読み込めるbaseline-profileの指定。尚、MP4Boxコマンドは以前コンパイルしたgpacに含まれていたものです。MP4BoxはAVインタリーブし直しに必要です。

------------encode169.sh------------
#!/bin/sh
infile=$1
test -f $infile || exit 1;
tmpfile=${infile%.*}.tmp
outfile=${infile%.*}.mp4
mencoder -noskip -mc 0 -aspect 1050:576 -ofps 29.97 -vfm ffmpeg -vf scale=480:272,harddup -ovc lavc -oac lavc -lavcopts vglobal=1:vcodec=libx264:vqscale=2:vqmin=2:level=30:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=0:cmp=3:subcmp=3:aglobal=1:acodec=libfaac:abitrate=128 -of lavf -lavfopts format=ipod -o $tmpfile $infile
MP4Box -ipod -fps 29.97 -add $tmpfile -new $outfile
rm -f $tmpfile
------------encode169.sh------------

使い方:
% encode169.sh test.ts

4:3コンテンツの場合はこんな感じでイナフ。ほとんど間違い探しであるが...以下2行書き換えてencode43.shとかで保存しておくといいかな。

mencoder -noskip -mc 0 -aspect 4:3 -ofps 29.97 -vfm ffmpeg -vf scale=480:360,harddup -ovc lavc -oac lavc -lavcopts vglobal=1:vcodec=libx264:vqscale=2:vqmin=2:level=30:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=0:cmp=3:subcmp=3:aglobal=1:acodec=libfaac:abitrate=128 -of lavf -lavfopts format=ipod -o $tmpfile $infile
MP4Box -ipod -fps 29.97 -add $tmpfile -new $outfile

_ 問題: 二ヵ国語などは未対応

ただ、上記でなんでも変換できるわけではなくて内部でlibfaacを使っている関係上、NHKニュースなど二ヵ国語放送のために 音声形式が途中で変更されるものは 雑音が入ったり切替え以降 たまに音がでなくなったりする ....。これは俺がほぼ100%ステレオ音声オンリーであるアニメしか変換しない(意味明瞭)ためにペンディングしている。まじめにやるならLR排他や5.1ダウンミックスしながら1本のステレオWAVにするようなデコーダが必要だろう。etchでNeroAacが動けばなー....

_ [iPhone] MP4ファイルをWebサーバApache経由で疑似ストリーミングさせる際の注意点

既に書いたが 「Baseline-profile NoBフレ,NoCAVAC,方形ピクセルのAVCであること」 と、 もうひとつ。 「URLの末尾が.mp4で終わること!」(URIパラメータ形式不可) 。これはマジハマッタ。どんなエンコードしても Safariで読み込むと 「このファイルは再生できません」 って言うからさ、てっきりエンコードが失敗してるのかーとか思うじゃないの。実はファイルは正常にできていて、SafariのEMBEDタグ呼出制限にひっかかってただけだった。サーバレスポンスヘッダのコンテンツタイプvideo/mp4も全く参照してないようだし...これどっかに書いてあります?

正直iPhoneは全体的にエラーメッセージが足りなすぎる!隠し機能でいいからおしゃべりモードがほしいな。Web開発だけでもJavaScriptエンジンの情報はもう少しほしい。SDKがあれば改善するのかしら...?

[]

2001|04|
2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|

[BANNER]
このサーバーをもう11年も維持しているかと思うとめまいがしますよ。
ツッコミ機能は、ハンドル名が完全日本語じゃないと登録できません。
また、本文にURLが含まれていても登録できません。
いずれもSPAM対策です。
[Panda Papanda]
2009年
3月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

_ [Papanda]  [Kuma]  [Tomorin]  [Iron]  [Eiza]  [Dokkin]  [Honya]  [Zyou]  [Tsuyo]  [Bike]  [Koe]  [Jittkyo]  [RNA]  _

訪問者数:(+1979588)