taktod/myLib

mpegtsの処理をつくる上でやっていくこと

taktod opened this issue · 6 comments

pesの読み込みまでは完了しているので
pesからframeを取り出す部分をとりいそぎつくっていく。
そのあとframeからpesを作成する部分をつくったり、
xuggleにまわして変換させたりする予定。(ここはコンテナ関係なく、frameがとれたらいけるけど。)

frameを取り出したり、frameから復元する処理をかいている途中。

とりあえず、aac mp3については動作するようになったが、requestUpdateの処理がながくなりすぎ、
なんとかしておかないと・・・

marioのflv動画(h264 + aac)を変換することができて、vlcで再生もできたので、とりあえず問題なさそう。

現状では、次の問題がある。
・sdt pat pmtが毎フレームごとに挿入されているので、無駄である。(適当に間引きしないとだめ。)
・dtsの計算がおかしい気がする。(静止フレームで画像が乱れた。(baseline以外に興味ないので、とりあえずほっときたい。))
→修正済み
・pesのbufferデータの計算がどこかおかしい。(たぶんadaptationFieldをinnerFrameでデフォルトoffにして1バイト狂ったと思う。)
→修正済み

どうやらpmtやpatのcrc32値がまちがっている?可能性あり。
注意しないと

pesから読み込んだ音声フレームの内部のpts値が微妙にずれることで、frame化したときに、音飛びが微妙に発生することがある。
サンプル数の記録を実施したほうがより正しいデータ(すくなくとも音飛びしない)になるので、なんとかしておきたいところですね。

multi nalのh264対応を実施する必要あり。
でないと再生がうまくいかない。
ノイズがはしった動画になったりします。

あと、pesの保持データ量が0x10000を超えた場合に、pesPacketLengthの値を0にしないとノイズの原因になることがある。
こちらは読み取り側の修正も必要。

multiNalのh264は対応済み。