Fixes ticket #5882. While it doesn't automatically set the timescale for the user as that would destroy data without prompt, it will tell the user how they could set the timescale (as this is mostly likely what they want).
Signed-off-by: Josh de Kock <j...@itanimul.li> --- >Would it be useful to print the max duration? I'm not entirely sure, open to suggestions though. libavformat/movenc.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index d7c7158..6bada25 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -5677,11 +5677,16 @@ static int mov_write_header(AVFormatContext *s) ret = AVERROR(EINVAL); goto error; } - if (track->mode == MODE_MOV && track->timescale > 100000) + if (track->mode == MODE_MOV && track->timescale > 100000) { + /* NOTE: forcing setting the suggested timescale manually means ffmpeg won't destroy + * timestamps without explicit instruction. */ + unsigned int suggested = (unsigned int)av_rescale(st->time_base.den, 1000, st->time_base.num); av_log(s, AV_LOG_WARNING, "WARNING codec timebase is very high. If duration is too long,\n" "file may not be playable by quicktime. Specify a shorter timebase\n" - "or choose different container.\n"); + "or choose different container. Using -video_track_timescale %d\n" + "may fix this issue.\n", suggested); + } if (track->mode == MODE_MOV && track->par->codec_id == AV_CODEC_ID_RAWVIDEO && track->tag == MKTAG('r','a','w',' ')) { -- 2.8.4 (Apple Git-73) _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel