mpegtsの処理をつくる上でやっていくこと
taktod opened this issue · 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は対応済み。