AVCodecContext *AudioCodec = s->streams[1]->codec;
int AudioRate = AudioCodec->sample_rate;
int FrameRate = ((VideoCodec->time_base.den) * (0x10000))/ (VideoCodec->time_base.num);
+ int audio_kbitrate= AudioCodec->bit_rate / 1000;
+ int video_kbitrate= FFMIN(VideoCodec->bit_rate / 1000, 800 - audio_kbitrate);
put_be32(pb, 0x94 ); /* size */
put_tag(pb, "uuid");
put_tag(pb, "mp4a");
put_be32(pb, 0x20f );
put_be32(pb, 0x0 );
- put_be32(pb, AudioCodec->bit_rate / 1000);
- put_be32(pb, AudioCodec->bit_rate / 1000);
+ put_be32(pb, audio_kbitrate);
+ put_be32(pb, audio_kbitrate);
put_be32(pb, AudioRate );
put_be32(pb, AudioCodec->channels );
put_tag(pb, "mp4v");
put_be32(pb, 0x103 );
put_be32(pb, 0x0 );
- put_be32(pb, VideoCodec->bit_rate / 1000);
- put_be32(pb, VideoCodec->bit_rate / 1000);
+ put_be32(pb, video_kbitrate);
+ put_be32(pb, video_kbitrate);
put_be32(pb, FrameRate);
put_be32(pb, FrameRate);
put_be16(pb, VideoCodec->width);