[FFmpeg-user] trouble with AVChapter
Steve Dibb
steve.dibb at gmail.com
Wed Nov 25 08:32:11 EET 2020
Hey there,
So I'm creating an MP4 file, and testing setting some chapters, and running
into two problems.
1. The chapter ranges are wrong -- in the example below, they should all be
one second apart, but the first chapter gets set to 0 to 4 seconds, then
the ones in the middle have no range, of 4 seconds to 4 seconds, and the
last chapter's range is 4 seconds to 5 seconds.
2. The chapter titles are all set to the last metadata entry for title given
Here's some sample, simplified code:
unsigned int num_chapters = 5;
unsigned int chapter_ix = 0;
unsigned char chapter_title[80];
memset(chapter_title, '\0', 80);
AVChapter *chapter = calloc(1, sizeof(AVChapter));
chapter->time_base.num = 1;
chapter->time_base.den = 1000;
AVChapter **chapters = calloc(num_chapters, sizeof(AVChapter*));
for(chapter_ix = 0; chapter_ix < num_chapters; chapter_ix++) {
chapter->id = chapter_ix + 1;
chapter->start = 1000 * chapter_ix;
chapter->end = chapter->start + 1000;
printf("chapter range: %i-%i\n", chapter->start,
chapter->end);
sprintf(chapter_title, "Chapter %u", chapter_ix + 1);
av_dict_set(&chapter->metadata, "title", chapter_title, 0);
chapters[chapter_ix] = chapter;
}
output->nb_chapters = num_chapters;
output->chapters = chapters;
And the output of ffprobe:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'dvd_rip_00.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.45.100
Duration: 00:00:05.00, start: 0.000000, bitrate: 9020 kb/s
Chapter #0:0: start 0.000000, end 4.000000
Metadata:
title : Chapter 5
Chapter #0:1: start 4.000000, end 4.000000
Metadata:
title : Chapter 5
Chapter #0:2: start 4.000000, end 4.000000
Metadata:
title : Chapter 5
Chapter #0:3: start 4.000000, end 4.000000
Metadata:
title : Chapter 5
Chapter #0:4: start 4.000000, end 5.000000
Metadata:
title : Chapter 5
Can someone look at this for me and see if there's any glaring errors on my
end?
Thanks!!
Steve
More information about the ffmpeg-user
mailing list