nvidiaグリッドベースのハードウェアエンコーダを使用するようにh264_encoder_impl
を変更しました。これは、OpenH264固有の呼び出しをNvidia API呼び出しに置き換えることによって行われます。エンコードされたストリームはファイルに正常に書き込むことができますが、_buffer
と_size
の文字はencoded_image_
で十分ではなく、RTPFragmentationHeader
も入力する必要があります。WebRTC:エンコーダ実装でRTPFragmentationHeaderとは何ですか?
// RtpFragmentize(EncodedImage* encoded_image,
// std::unique_ptr<uint8_t[]>* encoded_image_buffer,
// const VideoFrameBuffer& frame_buffer,
// SFrameBSInfo* info,
// RTPFragmentationHeader* frag_header)
// encode
openh264_->Encode(input, &info /*out*/);
// fragmentize ?
RtpFragmentize(&encoded_image_ /*out*/, &encoded_image_buffer_, *frame_buffer,
&info, &frag_header /*out*/);
// ...
// send
encoded_image_callback_->OnEncodedImage(encoded_image_, &codec_specific, &frag_header);
現在Openh264ベースの実装はRTPFragmentize()
でfrag_header
を満たし、VP8は異なり、それを埋めます。私はNALと何かを見ることができます。encoded_image->_length
も計算されていますが、どのようにすればいいのか分かりません。
どこにもドキュメントがありません。 VP8とOpenH264の実装はすべて私が持っています。
だからRTPFragmentationHeader
とは何ですか?それは何をするためのものか? encoded_image->_length
とは何ですか?カスタムH264エンコーダを使用して正しく記入する方法は?私はスタートコードを見つけることができますが、次に何ですか?すべてのメンバーをどのように満たすのですか?