mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-28 12:32:17 +02:00
Guess the duration before converting video and write guessed duration
into flv header. Patch by Justin Johnson, justin D johnson3 A gmail Originally committed as revision 21615 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
a3cc2160e0
commit
c5e1e9827d
13
ffmpeg.c
13
ffmpeg.c
@ -2104,6 +2104,19 @@ static int av_encode(AVFormatContext **output_files,
|
|||||||
ist->is_start = 1;
|
ist->is_start = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* set the duration of the output to the duration of the input
|
||||||
|
* if the output ends up being different, it'll be corrected later */
|
||||||
|
for (i=0;i<nb_output_files;i++) {
|
||||||
|
AVFormatContext *out_file = output_files[i];
|
||||||
|
AVFormatContext *in_file = input_files[i];
|
||||||
|
|
||||||
|
if (recording_time != INT64_MAX) {
|
||||||
|
out_file->duration = recording_time / 1000000 * AV_TIME_BASE;
|
||||||
|
} else {
|
||||||
|
out_file->duration = in_file->duration;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* set meta data information from input file if required */
|
/* set meta data information from input file if required */
|
||||||
for (i=0;i<nb_meta_data_maps;i++) {
|
for (i=0;i<nb_meta_data_maps;i++) {
|
||||||
AVFormatContext *out_file;
|
AVFormatContext *out_file;
|
||||||
|
@ -221,7 +221,7 @@ static int flv_write_header(AVFormatContext *s)
|
|||||||
|
|
||||||
put_amf_string(pb, "duration");
|
put_amf_string(pb, "duration");
|
||||||
flv->duration_offset= url_ftell(pb);
|
flv->duration_offset= url_ftell(pb);
|
||||||
put_amf_double(pb, 0); // delayed write
|
put_amf_double(pb, s->duration / AV_TIME_BASE); // fill in the guessed duration, it'll be corrected later if incorrect
|
||||||
|
|
||||||
if(video_enc){
|
if(video_enc){
|
||||||
put_amf_string(pb, "width");
|
put_amf_string(pb, "width");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user