Cara streaming MUX RTP tergantung pada jenis unit NAL

Pekerjaan saya seperti berikut:

  1. Sebelum streaming video, jenis, ukuran dan alamat awal setiap unit NAL diekstraksi menggunakan parser bitstream H.264.

  2. Selama streaming, satu unit NAL dienkapsulasi menjadi satu paket RTP.

Pertanyaan saya: Saya perlu menggunakan informasi unit NAL yang diekstraksi sebagai masukan ke mux sehingga mux ini dapat menentukan apakah paket RTP berisi tipe unit NAL tertentu seperti PPS. Jika demikian, ia akan mengarahkannya ke terowongan TCP, jika tidak, paket RTP akan diarahkan ke terowongan UDP.

FYI: Saya menggunakan OEFMON yang mengintegrasikan Qualnet dan Directshow. Bantuan apa pun akan kami hargai.


person Eñg Nåwål SbǾǿl    schedule 25.05.2015    source sumber
comment
Saya tidak yakin mengapa Anda perlu menggunakan saluran tcp untuk PPS. PPS adalah unit akhir yang valid dan harus menjadi bagian dari aliran udp Anda. Ada alasan khusus? Bagaimanapun Anda dapat menemukan tipe unit NAL dari header akhir. 7 adalah sps dan 8 adalah pps menurut saya.   -  person Saibal    schedule 26.05.2015
comment
@Saibal Terima kasih atas balasan Anda. Pengiriman PPS dan SPS melalui TCP penting untuk menjamin pengiriman unit-unit tersebut yang berdampak penting pada kualitas video. Saya perlu mengetahui tipe unit NAL dengan mengurai header RTP, bukan header NAL. Ada saran?   -  person Eñg Nåwål SbǾǿl    schedule 27.05.2015


Jawaban (1)


Header rtp tidak memiliki informasi tentang tipe NAL. Anda harus mengurai payload RTP untuk mendapatkan tipe akhir. Cuplikan kode berikut menunjukkan dasar-dasarnya:

 nType = getbits(pRaw+12, 3, 5);

dimana pRaw adalah awal dari seluruh paket RTP, yang menjadikan pRaw + 12 sebagai awal dari payload RTP. Jadi fungsi tersebut pada dasarnya membaca nilai yang ditentukan oleh 5 bit mulai dari offset 3 dari awal data payload RTP. Hal ini didefinisikan dalam RFC 6184.

person Saibal    schedule 27.05.2015
comment
Terima kasih atas jawaban Anda, saya akan membahasnya. Saya memahami RFC 6184 tetapi saya tidak dapat menemukan kode c++ yang mengimplementasikannya. Saya baru dalam mengkodekan ide-ide seperti itu jadi bantuan apa pun akan berguna. - person Eñg Nåwål SbǾǿl; 27.05.2015
comment
Bisakah Anda membantu saya tentang cara mendapatkan pRaw? Tolong pertanyaan lain: berapa nilai kembalian nType? Saya baru di bidang ini jadi saya sangat menghargai bantuan Anda yang berharga. - person Eñg Nåwål SbǾǿl; 29.05.2015