videoio(ffmpeg): specify stream->time_base

Using codec->time_base is deprecated to specify muxer settings.
Resolves issue with FPS value for AVI files with FFmpeg 4.0.

Related FFmpeg commits:
- 194be1f43e
- 91736025b2
pull/11617/head
Alexander Alekhin 7 years ago
parent 06c1890639
commit 5128c1ff1f
  1. 3
      modules/videoio/src/cap_ffmpeg_impl.hpp
  2. 2
      modules/videoio/test/test_ffmpeg.cpp

@ -1587,6 +1587,9 @@ static AVStream *icv_add_video_stream_FFMPEG(AVFormatContext *oc,
#if LIBAVCODEC_BUILD >= CALC_FFMPEG_VERSION(52, 42, 0)
st->avg_frame_rate = (AVRational){frame_rate, frame_rate_base};
#endif
#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(55, 20, 0)
st->time_base = c->time_base;
#endif
return st;
}

@ -357,6 +357,8 @@ public:
for (unsigned int i = 0; i < frameCount && next; ++i)
{
SCOPED_TRACE(cv::format("frame=%d", (int)frameCount));
Mat actual;
(*capture) >> actual;

Loading…
Cancel
Save