c++ - 如何在 C++ 中使用 ffmpeg 获取视频的 fps?

标签 c++ ffmpeg frame-rate

我有视频文件。如何在 c++ 中使用 ffmpeg 获取该视频的 fps?
请输入完整代码。

最佳答案

这是我编写的一个简单程序,用于将视频信息转储到控制台:

#include <libavformat/avformat.h>

int main(int argc, const char *argv[])
{
    if (argc < 2)
    {
        printf("No video file.\n");
        return -1;
    }

  av_register_all();

  AVFormatContext *pFormatCtx = NULL;

  //open video file
  if (avformat_open_input(&pFormatCtx, argv[1], NULL, NULL) != 0)
    return -1;

    //get stream info
    if (avformat_find_stream_info(pFormatCtx, NULL) < 0)
        return -1;

    av_dump_format(pFormatCtx, 0, argv[1], 0);
}

编译运行,输出如下:
s@ubuntu-vm:~/Desktop/video-info-dump$ ./vdump a.mp4 
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'a.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isom
    creation_time   : 2014-04-23 06:18:02
    encoder         : FormatFactory : www.pcfreetime.com
  Duration: 00:07:20.60, start: 0.000000, bitrate: 1354 kb/s
    Stream #0:0(und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 1228 kb/s, 24 fps, 24 tbr, 24k tbn, 24 tbc (default)
    Metadata:
      creation_time   : 2014-04-23 06:18:02
      handler_name    : video
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 123 kb/s (default)
    Metadata:
      creation_time   : 2014-04-23 06:18:25
      handler_name    : sound

推荐a very good tutorial for ffmpeg and SDL .

关于c++ - 如何在 C++ 中使用 ffmpeg 获取视频的 fps?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42718751/

相关文章:

c++ - 指针调用和返回指针的区别

java - 如何使用 SWIG 返回指向用户定义类对象的指针

video - 在准确的时间在视频 ffmpeg 中插入视频

filter - FFmpeg 串联滤波器

c++ - 每 2 秒捕获帧

c++ - std::experimental::ostream_joiner 和 std::pair

c++ - 用一个空格替换字符串中的多个空格

php - 如何在 WampServer 2.0 (Windows XP) 中安装 FFMpeg

c++ - 在 C++ 中使用 OpenCV 设置 gstreamer capsfilter

jquery - 如何在jQuery中为每个动画设置不同的帧速率