携帯動画変換君未対応機種情報

A5504T

携帯動画変換君 Version 0.26

A5504T向け設定、A5506T向け設定を追加しました。A5504Tに関してはきちんと対応データを 構築することができれば早送り・巻き戻しも可能になるはずですが、試行錯誤の末、「この データをこうすればいいんじゃないか」という推定まではたどり着きましたが、対応の データを出力することは最終的に断念しました。ごめんなさい。 ※技術的に難易度が高いというか、現状の出力方法(ffmpeg→QuickTime)では対応が非常に 難しいという理由です。なお、この設定では長時間の動画が再生できない可能性があります。 (A5506Tに関しては最大再生可能サイズの制限がありますのでもともと長時間の再生はできません)

とあるけど、実際のところどうなんですか。

俺はA5504Tを持っていないのでどうでもいいといえばどうでもいいんだけど、引き継いでみようかな。

QVGAのAMRは音も絵も質を下げてしまうので、QCIFのAACで4MBくらいの断片化されたファイルで挑戦してみようかなと。 でも、A5504Tを持ってい俺にはA5504Tのこと知らないし動作確認も出来ない。

えーと、現在わかっていることと試したことを簡単にまとめておきます(by Calcium)

再生の最後にエラーになるとかに目をつぶり、全体のファイルの完成度を求めないという前提ならA5504T向けの3G2フォーマットでのなんらかの出力は出せると思います。 ただ、私が「対応する」という場合はエラーをつぶしてきちんと対応したいと考えていますので、いろいろ調べた結果断念したというわけです。参考までに、調べたことと思考の過程を簡単にメモしておきます。(要点だけですが…。実際には他にもいろいろ試行錯誤はしています)

  • A5504Tの実機が触れる店舗は都内だとヨドバシカメラ新宿西口本店通信館店頭(まだあるかな?)
  • A5504Tが再生可能なストリーム
    • ビデオストリームはXviD Simple@L3 (ユーザ情報を削除したもの)でOK
    • オーディオストリームはamr_nbでOK
  • A5504Tが再生可能なコンテナ
    • 3GPPコンテナでは再生可能だが、早送り巻き戻しが出来ない(=現状はこれで我慢)
    • 3GPP2コンテナでは早送り巻き戻しが可能だが、数秒でエラーになり停止→3GPP2でA5504Tで再生させるための条件を探る必要あり
    • 3GPP2が中心となる設計のようなので、3GPPコンテナでは長時間の動画が再生できない可能性が高い(=チャンク・フレームのバッファを断片化前提のサイズしか確保していない可能性が高い)
  • エラーになる原因の推測
    • 3GPP2コンテナでも最初の数秒は再生できることから、moov相当部分/moof相当部分に分類するとmoov部分に関してはデコードできていると考えられる
    • 断片化した地点でエラーになるわけではないが、断片化の時間をいじると相当してエラーになる箇所も変化するので、moofの先読み時にデコード失敗してエラーになっているのではないかと推測できる。
  • 再生できる3G2ファイル(A5504T本体で録画したファイル)とエラーになる3G2ファイルの比較
    • 上記の点から、主にmoofの相違点を検証する。(moovに関しては特に問題になりそうな大きな相違はなかった。V601T対応時に東芝デコーダにあわせて修正したし)
      • オーディオトラック, ビデオトラックのトラック番号が違う→書き換えても変化なし→再生可不可に無関係
      • tfhdの構成が違う。A5504T録画ファイルはbase-data-offsetが0のデータばかり→base-data-offsetの処理に失敗している?→base-data-offsetを0にしてこのフィールドを削除する処理を書いてみた(ATOMChanger A5504T=1)が変化なし→再生可不可に無関係(たぶん)
      • trunの構成が違う。trunのflagでfirst-sample-flags-presentが立っているデータはNGのものにしか無い→書き換えてテストしてみたいが、これを「削除」するためにはコンテナ構築時からきちんと検討しなければいけない→とても面倒なのでパス
      • mfraはおそらく必須です。QTの3GPP2出力はmfraが無いのでこれを生成する必要があります。(ATOMChanger build_mfra)、しかし、古い東芝デコーダ(V601T含む)は、mfra/tfraのtraf_number,trun_number,sample_numberが全て1でないといけないという制限があります(たぶん。V601Tはそうでした)。QTの3GPP2コンテナ生成は当然そんなこと何も考えずにチャンクを作っていくので、ここに矛盾が生じていることがエラーの原因かもしれません。(Build_mfra=1で「正しい」mfra/tfra、Build_mfra=2で「強制的にパラメータを1とした」mfra/tfraを生成します)
  • ヘッダの意味がわけわからないという人はISO MPEG-4フォーマットの仕様書が参考になります。

私が挑戦する内容

話が長くなったので別の場所に移します。 なんか重いのでこっちに移動します。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-03-20 (木) 01:43:01 (5871d)