Open taktod opened 7 years ago
mp4のtrunにもcttsっぽいのがある模様。 通常ならtrunのdurationで計算するけど trunのsampleCompositionTimeOffsetsPresentで計算できる模様。 あってるかな・・・
とりあえずmkv、mp4(ffmpeg出力とMP4Boxでmdatとmoovをいれかえたやつ)は対応できた。 fmp4とflv、mpegtsとかまだやることはあるあるだ。
いろいろ考えてみたが、やはりframe事態にdts項目を保持させておいて、 miscの動作で保持しているframeについてdtsを計算するというものを追加しておくのがよさそう。
そうすれば一番簡単にいろいろなところにdts処理を追加できそうな予感。
dtsデータを計算するのは、完成した。 基本dtsの計算をする方向になった。
flvWriterはdts考慮してもデータとして問題がでないので、基本dtsありとしてプログラム組んで大丈夫だろうか・・・ mpegtsWriterとmp4Writerはdtsありの処理を実施するとデータサイズが大きくなるため、外からflagで設定できるように調整しておこうと思う。
mkvWriterはdtsを考慮する必要がないため、放置しておく。
flvでbFrameがない場合にdts設定があるデータをつくっても問題ないかは不明。 すくなくともmyLibで読み込めないflvにはなるだろう。
一応、mkv、mp4、mpegtsはもう大丈夫っぽい感じになった。 flvはいつかやらないと・・・
b frameに対応できるようにしておく。
ただし、既存の動作のリアルタイム性が失われるようなことはないようにしておきたい。