問題タブ [pts]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
553 参照

video - ffmpegでデコードすると、2番目のフレームのPTS値が間違っているのはなぜですか?

ffmpegビデオをmp4にエンコードするために使用しています。異なる GOP とビットレート値でエンコードされた MP4 があります。
フレームごとにビデオをデコードすると、pkt_pts連続する各フレームの がタイムベース単位で増加するはずです。
一部の MP4 は、正しい連続した pts 値でジャンプします。time_base={num=1, den=12800}と: 最初のフレームは、frame_rate={num=1, den=25}2番目のフレームは、3 番目のフレームは、...interval=512 (12800/25)pts=0pts=512pts=1024

しかし、フレームが正しいpts値でジャンプしても、2番目のフレームのpts値間違っているMP4があります。time_base={num=1, den=1200000}とについて: 最初のフレームには がframe_rate={num=1, den=16}あり、2 番目のフレームには があり、3 番目のフレームには があります。2 番目のフレームに があり、ないのはなぜですか?interval=75000 (1200000/16)pts=0pts=48000pts=123000pts=48000pts=75000

これを引き起こす可能性のあるパラメーターを理解しようとしています。

この質問に対処するためにさらに情報が必要な場合は、お知らせください。

0 投票する
1 に答える
66 参照

c - ターミナルで noonnamed パイプを読み取る

こんにちは。私は非常に単純なCプログラムを持っています。プログラムでパイプを作成します(標準、名前なし)。ターミナルで既存のプロセスのパイプを読み取ることはできますか (> または cat でストリームしますか?)。私はそれを試しますが、私のコマンドは何もしません。私は、外部 I/O が非常に簡単な名前付きパイプを作成できることを知っています。/proc/number/fd のパイプの数を持っています なぜそれが必要なのですか? デバッグからだけです(だけでなく、gdbがパイプに見えることも知っています)。プロセスをフォークすると、子は pts (端末) と std io/out を継承します。ポイントの変更は可能ですが、やり方が悪いです。そのため、次のターミナルを開き、そこに既存のプロセス パイプをストリーミングします。それは可能です(そして、まともな、めまいがする方法は私には興味がありません)または名前付きパイプを使用する必要がありますか?

0 投票する
1 に答える
432 参照

video - ポイントに基づいて再生ヘッドの位置を取得する

TS ファイルのポイントに基づいて再生ヘッドの位置を取得できるかどうかを判断しようとしています。

私が見つけたほとんどの記事は、ffmpeg の使用について話しているだけで、私はそれを使用していません。

私の理解では、pts は MPEG TS 仕様のオプション フィールドである pcr に基づいています。しかし、フレームの位置をポイントに基づいてストリームに秒単位で計算できることを考えると。その場合、計算はどうすればいいですか?

0 投票する
0 に答える
964 参照

video - ffmpeg で 960 fps ビデオを遅くする (setpts が機能しない)

の Android フォンで録画したビデオの速度を落とそうとしてい960fpsます。「プレゼンテーションのタイムスタンプ」(pts)を変更する必要があるという基本的に同じことを言っている以前の投稿やブログがたくさん見つかりました。同じことを言っている公式ドキュメントも見つけました。コマンドラインは基本的に次のようになります。

Android Filter Transfer を使用してビデオ ファイルをコピーしました。上記のコマンドラインを使用すると速度が低下しますが、結果の出力は途切れ途切れになります。の出力はffmpeg、フレームが複製されていることも示しています。

ファイルで実行ffprobeすると、次のようになります。

これは、ビデオが30 fpsではなく であることを検出しているようです960 fps。これがおそらく、既存のフレームを使用する代わりに重複したフレームで埋めている理由です。

Lenovo Z2 Plus (別名 Zuk Z2) でビデオを録画しています。内蔵プレーヤーを使って低速で動画を再生すると非常に滑らかに見えるので、フレームは確実にあります。誰かが正しい方法を理解するのを手伝ってくれますか? 誰かが試してみたい場合に備えて、ファイルはここから入手できます (約 10MB)。

更新:別の電話で記録された電話でのスローモーションでのビデオ再生。元のビデオが 30 fps の場合、火花がどれだけ滑らかでゆっくりと放たれるかに注目してください。

0 投票する
1 に答える
1241 参照

android-ndk - eglPresentationTimeANDROID() の効果の測定

eglPresentationTimeANDROID()リップシンクを改善するために使用する C++ ビデオ レンダラーをデバッグしています。このegl 拡張機能は、私がテストしたすべてのデバイスで利用できるわけではありませんが、一部 (adreno など) では、手動で無効にする必要があります。そうしないと、ストリームが停止します。一部のデバイスは実際に PTS を無視することを理解しています ( Android Native Window のタイムスタンプを参照)。

私は最近、この機能を有効にすると失敗する (非常に風変わりな) デバイスに直面しており、完全に無効にすることを検討しています。しかし、この決定を下すには、この PTS を取り除くことを決定する前に、この PTS の効果を測定したいと考えています。

0 投票する
0 に答える
346 参照

ffmpeg - ffmpeg でポイントを使用する方法

ビデオデータとPTSを提供できるライブラリがあります。ライブラリの先頭ファイルは次のようになります:</p>

ご覧のとおり、ライブラリはビデオ フレーム バッファ アドレスと PTS を提供します。

ビデオデータを正しくデコードするためにFFMpegを使用しています。

私の質問は、ライブラリによって提供される ptsValue によって表示時間を制御する方法です。

ptsValue を AVFrame に設定する必要がありましたか? その後、FFMペグは表示時間自体を制御できます。または、独自のコードで表示を制御する必要がありますか?

私はFFMpegの初心者です。私を助けてください。どうもありがとうございました!

0 投票する
0 に答える
1037 参照

ffmpeg - ffmpeg PTS計算

私はffmpegを使用してストリームをメモリに保存し、html5 Webページに再ストリームしています... xtreamパネルコードのようにPTS値を手動で計算する方法を知りたいです(PTS / Network Speed 1.00xまたは1.34xまたは0.94 x)....出力ファイルをhddに保存していないため、ffmpegから出力を取得できないため、手動で計算する必要があります...

メモリチャンクストリームリンクpts_timebaseからすべての情報を取得し、ビットレート、解像度などの他の情報を取得しました...ffmpegからHDDにファイルを保存するときに、ffmpeg出力のようなPTSを手動で計算するにはどうすればよいですか?たとえば:

この例では 2.61x であるこの速度を手動で計算したいと思います..これを計算するための公式は何ですか?

ありがとう。