問題タブ [vp8]
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.
rtp - VP8/VP9 RTP ライブラリ
RTP を介した VP8/VP9 ストリームの転送を容易にする既存のライブラリはありますか?
VP8 の RFC ドラフト ( https://datatracker.ietf.org/doc/html/draft-ietf-payload-vp8-08 ) を見つけましたが、VP9 コーデックについて言及しているものはありません (最近すぎますか?)。libavformat はこのドラフトを実装しているようです。他の選択肢はありますか?
video-streaming - ビデオ ストリームのキャプチャとフレーム レートの制御
現在、VP8 と V4L2 を使用してビデオ ストリーミング ソフトウェアを開発していますが、フレーム レーティングの重要な概念に苦労しています。
フレームをループでフェッチし、エンコードしてRTP経由で送信する基本的な実装があります(可能な限り高速です)。しかし、ビデオのフレームレートを制御したり、サンプリングを調整したりする方法がわかりません。
基本的には次のように要約できます。
特に、適切に設定する方法がわかりません:
- V4L2 キャプチャ ループ (定期的にフレームを取得するためにタイマーが必要ですか?)
- V4L2 からの FRAME INTERVAL 設定 (必須ですか?)
- libvpx タイムベース (1/fps ? 1001/30000 を使用する必要がありますか?)
- ポイント値 (フレーム数 * (1/fps) * 90000 である必要がありますか?)
- RTP タイムスタンプ (ここで pts を使用できますか?)
- 考慮できるその他の構成設定...
ffmpeg - ffmpegを使用したwebmからmp4への変換
webm ファイルを mp4 に変換しようとすると、出力が途切れ途切れになり、ffmpeg によって多くのフレームがドロップされたように見えます。
次のコマンドを使用して変換しました
それらはすべて同じ問題を抱えています。ffprobe を使用すると、フレームが多かれ少なかれ適切に表示されるようです。
アップデート:
android - ネイティブ WebRTC への H.264 サポートの追加
H.264 のサポートが WebRTC の現在のメンテナーの目標ではないことはよく知っています。しかし、ネイティブ コードを調べていると、H.264 RTP パケタイザーを参照するコメント アウトされたビットがあることに気付きました。私が取り組んでいる環境は OMAP4430 で、H.264 SVC エンコード/デコードをハードウェア アクセラレーションでサポートしているため、アプリケーションのネイティブ WebRTC に H.264 サポートを再度追加できれば素晴らしいと思います。(VP8 は私のデバイスでは非常に遅いです。) 現在プロジェクトにあるパケタイザーから始めるのは良いスタートですか? 誰かがこれを行ったことがありますか / H.264 サポートを追加する方法についての推奨事項はありますか? (H.264 WebRTC データを Doubango の Media Breaker に送信して、通常の WebRTC クライアントをサポートする予定です。)
上記が絶対に不可能または非常に難しい場合、少なくともデバイスで VP8 のパフォーマンスを向上させる方法を誰かが推奨できますか? これは NEON ベースの ARM SoC であるため、libvpx は自動的にそれを利用するはずだと思います。確実に知る方法はありますか?
ffmpeg - FFMPEG を使用した webm ローカル udp ストリーミング
最近ffmpegを使い始めたばかりで、このストリーミングの問題に遭遇しました。シナリオ: ローカル ネットワークで Web カメラをライブ ストリーミングしたい。サーバーとクライアントの両方が Windows プラットフォームを使用します。
現在実行可能な解決策: ffmpeg のシンプルなコマンドラインを使用する
すぐにテストするために、ローカルでストリーミングしようとしました(この質問では、入力はそれほど重要ではありません)。
上記は、約1〜2秒の遅延で発生するレイテンシを除いて、問題なく機能します。
ここで、ビデオに libvpx (vp8) を使用し、オーディオに vorbis を使用するようにエンコーダーを変更したいと考えています (入力を事前に記録された h264 ビデオに変更しましたが、実際には問題ではありません)。
では、ffmpeg のポイント ツー ポイント ストリーミングは vp8 では機能しないのでしょうか、それとも何か不足していますか? ところで、最終的な目標は、同様のビデオ チャット ベースのフレームワークを作成することです。私は今webRTCを読んでいます。
stream - WebRtc VP8 カスタム ビデオ
RGB フレーム (リアルタイム) データを Web 経由でビデオ ビデオ ストリームとしてブラウザ (chrome/firefox) に転送したいと考えています。
rgb -> yuv -> yv12 -> vp8 の変換が完了しました。vp8 ビデオをローカルで再生でき、見栄えも良いです。
他の「クライアント」がこれを見ることができるように、このデータを webrtc にフィードできるようにする必要があります。
これは実行可能ですか?
vp8 を webm ビデオ ファイルにラップするつもりでしたが、実際のファイルの長さは書きません。これは、リアルタイム ストリーミングであるため長さが分からず、ブラウザでタグを作成し、データのフィードを開始するためです。(私は以前に Theora でこれを行いました。「ストリーミングを偽造しました。確かに少し遅く、TCP でしたが、遅延はありました)。
または、データを webrtc にフィードします。APIがこのようなことを許可しているかどうかさえわかりません。少しハックする必要があるかもしれません。
要約: プロセス A は NxM RGB ビデオを作成し、それをバッファに書き込みます。プロセス B は、IPC を介してバッファを読み取り、それを VP8 にエンコードします。プロセス B は、これを webm または webRtc のいずれかで VP8 を使用してブラウザに送信します。
video-streaming - WebM VP8 非連続フレームをデコードする方法
VP8でエンコードされたフレームを「非順次」の順序で適切にデコードする方法について、誰かが私にアイデアをドロップできますか。これが意味することは次のとおりです。
つまり、「1」から「X」までの VP8 でエンコードされたフレームのチャンクがあります ( 「I」フレームは 25 フレームごとに追加されます) 。
すべてのフレームを「フレーム 1」から「フレーム 13 」まで順番に再生すると、すべて問題なく、アーティファクトは発生しません。
しかし、「フレーム 13 」のみをデコードすることに関心があるとしましょう...これは「I」フレームではないため、最初に「フレーム 1」(「I」フレーム) をデコードし、次に「フレーム」のみをデコードします。 13 "。しかし、フレームはいくつかのアーティファクトでデコードされているので、何が原因なのか少し混乱していますか?
私が言いたいことを示す短いビデオは、ここにあります。
私の知る限り、VP8 は「B」フレームを使用していませんか?
これを克服するために使用できるデコーダーまたはエンコーダーのフラグがいくつかあるのではないでしょうか?
VP8 でエンコードされたすべてのフレームが相互に依存しているように見えますが、これは本当ですか?
WebM 対応のビデオ プレーヤーによってビデオ シークがどのように行われるかについてのアイデアはありますか?
ありがとう。
video - vp9 ビデオ デコーダーのダイレクト ショー フィルターを作成する方法
私はダイレクトショーが初めてです。vp9 デコーダーの C ソリューションがあり、圧縮ファイルをデコードして再生できるダイレクト ショー フィルターを作成したいと考えています。
これらのフィルタをダイレクト ショーに追加する方法について、どなたか助けてください。これにより、エンコードされたファイルを再生、一時停止、実行のシンプルな GUI でデコードできます。
デコーダー アプリケーションは、exe または dll タイプのどちらにする必要がありますか?
Direct Show へのカスタム コーデックの追加/登録に関する資料は大歓迎です。
助けてくれてありがとう。