Skip to content

H.264 error resiliency

Martin Pulec edited this page Sep 30, 2019 · 4 revisions

Tasks

  • to prevent running out of the bitrate, H.264 frames must be as even as possible
  • let decoder process even partially corrupted frames
    • test which decoders crash on scrambled data
    • zero buffer space where data are missing due to missing packets (maybe not needed but more safe)
  • divide RTP packets according to H.264 NAL units (like it is already for RFC-compliant transmission)
  • consider fetching the lavd not H.264 frames but NAL units/packets
  • consider invalidating incomplete NAL units
  • different transport (SRT/QUIC/UDT)

Testing

Test Case 1, 2

First test without and second with Reed-Solomon forward error correction:

sudo tc qdisc replace dev lo root netem loss 5%
uv --playback NZ-1080p-yuv-H.264-15M -d gl:fs [-f rs:200:220]
Clone this wiki locally