0

ISDB-T オーディオとビデオを再生するメディア プレーヤー アプリケーションに取り組んでいます。デコードとレンダリングに GStreamer を使用しています。

AV Sync を完全に機能させるには、ファイルの読み取りを調整する必要があります。データが Gstreamer にプッシュされるのが速すぎたり遅すぎたりしないようにします。

If I know the duration of TS file before hand, then I can regulate my reads. But how to calculate the TS file duration ?

複数の TS ファイルを使用してアプリケーションを検証する必要があるため、ユーティリティを使用して期間を計算できず、ファイルの読み取りを変更し続けることができないため、プログラムでこれをどのように実現できますか?

ありがとう、

クランティ

4

2 に答える 2

2

トランスポート ストリーム内のエンコーディングと PES レイヤーについて十分な知識がある場合は、TS 内のタイムスタンプを読み取って自分で計算できます。ファイルの最後までシークし、最後のタイム スタンプを検索し、ファイルの先頭にある同じプログラムの最初のタイム スタンプを減算する必要があります。

編集:上記の方法に加えて、最後のフレーム期間を含める必要があります。
((last_pts - first_pts) + frame_duration) / pts_resolution

持続時間が 6.006 秒の 30 fps セグメントがあるとします。
((1081080 - 543543) + 3003) / 90000 = 6.006

于 2013-05-13T07:50:47.453 に答える