Re: Quicktime Encoder help
Re: Quicktime Encoder help
- Subject: Re: Quicktime Encoder help
- From: Brad Ford <email@hidden>
- Date: Thu, 6 Aug 2009 10:57:02 -0700
On Aug 6, 2009, at 6:40 AM, aruna nagaraj wrote:
Hello,
This is related to quicktime API .I had posted these queries in the
quicktime-api list but there was no response . In case some one knows
about the below in this list please let me know .
I am sending video between two applications. I am having the below
problems, please can anyone help
me with some pointers for the same:
1) I am using Sequence grabber to capture the video and using
quicktime api EncodeFrame to encode it to H264 format and then
transmit to the other end .The encoded frame has 4 to 5 NAL units and
the size of each NAL
varies . The UDP packet size should not exceed 1400 bytes . As the
other end cannot reassemble the Fragment units ( Single NAL mode), I
cannot use FU-A fragmentation for transmission of packets .
Please let me know if there is a way to control the NAL unit size in
the encoder through any of the Quicktime API's or any other means ? I
tried using the SGSetPrefereedPacketSize but still the size of the NAL
is the same .
The sequence grabber does not support compression sessions.
Internally it uses a compression sequence if it needs to encode
video. The compression sequence api is older than compression
session, and not b-frame aware, so it cannot do h264+b-frames. It can
do IP only baseline h264. You can control the data rate, but not the
size of individual NAL units.
If you wish to have finer grain control over video encoding, I suggest
you use Sequence Grabber as a sourcer. Request no video encode -- get
the frames in their device native format. Then use a video
decompression session to decompress them (if necessary) and a
compression session to encode them. Take a look at
CaptureAndCompressIPBMovie sample code from developer.apple.com. The
downside of this approach is that you won't get Sequence Grabber's
help with a/v sync, but it sounds like that's not a big issue for you,
since you're not writing to a file -- you're packetizing for streaming.
You might also look into QTKit Capture API's. The compression options
are not as rich overall, but it can produce h264 video with b-frames
with less work on your part. None of our API's allow a user to
specify max size of an individual NAL unit.
-Brad Ford
QuickTime Engineering
2) Can compression sequence be used for H264 encoding ? In few of the
blogs it is suggested to use compression session for H264 encoding ,
is this correct ?Guess if sequence is used then there is a API to set
the Preferred packet size but I have not come across such a option for
session.
3) I want to capture the desktop (content sharing)and send to the
other end , please suggest how to go
about it. I have seen a sample application doing this by using openGL
.Is there any other means to do ?
Thanks in advance,
Aruna
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden