sure, you can achieve point 3.
in msx264/src/msx264.c
set params.b_repeat_headers = 1 // function enc_preprocess
why?
vi x264/x264.h
"int b_repeat_headers; /* put SPS/PPS before each keyframe */" can you see it?
Hi guys,
I'm trying to send H264 video over RTP and planning to write a simple
mediastreamer application (similar to
linphone-3.3.2/mediastreamer2/tests/mediastream.c) for doing the same.
Now my application has a few restriction/pre-requisites , which are as
follows :
1. The H264 profile has to be baseline
2. It has to be a byte-stream
3. It should contain SPS, PPS in the header after a specified time interval.
Point 1. is already implemented since the msx264 plugin is be default
configured as baseline profile.
For configuring Point 2. , I set the annexb variable in "params.b_annexb" to
1.
Now, the only remaining issue is Point 3.
What would be the best way to achieve it ?
This is what I was thinking :
- In msx264.c , enc_process(), the function x264_nals_to_msgb() creates a
queue of the NAL units and packs it using rfc3984_pack().
- I would check for the payload identifier type and when I get SPS and PPS,
packets, save them
- Then insert this queue on every pre-determined time interval, and pack it
normally using rfc3984_pack().
Does this design make sense ?
Can someone suggest anything better ?
Thanks,
Raseel