zoukankan      html  css  js  c++  java
  • C++调用ffmpeg.exe提取视频帧

    有时候,我们获得一段视频,需要将其中的每一帧都提取出来,来进行一些相关的处理,这时候我们就可以需要用到ffmpeg.exe来进行视频帧的提取。

    ffmpeg简介:FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。(百度百科

    ffmpeg.exe下载:在编程可以使用FFmpeg的很多类库,这个在官网上就可以找到,不过下载的是源码,笔者未找到ffmpeg.exe解码器(可能是有点脑残,大家百度就好了,文件不大,也就几M),,ffmpeg.exe是ffmpeg库提供的一个编解码工具,可以对各种音视频进行编解码,并输出不同的封装格式文件。关于它的一些参数,大家看后面的程序了解一下.

    编译环境:VS2017

    实验代码:

    #include <stdio.h>
    #include <windows.h>
    int main()
    {
        char S[] = "C:\ffmpeg.exe -i C:\play.mp4 -r 1 -y -f image2 -ss 00:00:00 -t 513 -s 352*278 C:\aa\%d.jpg";
        system(S);
        return 0;
    }

    其中:C:\ffmpeg.exe是我ffmpeg.exe的绝对路径

       C:\play.mp4是视频的绝对路径

       1 表示的是每秒时间内的照片张数

       00:00:00指的是开始的时间

       352*278为生成的照片分辨率

       C:\aa\%d.jpg为最终存储照片的绝对路径,%d表示照片依次为 1,2,3,...

    运行结果:

    于是我的C:aa目录下:

    其实,这只是一个简单的程序调用,我们在CMD命令行中输入C:ffmpeg.exe -i C:play.mp4 -r 1 -y -f image2 -ss 00:00:00 -t 513 -s 352*278 C:aa\%d.jpg 也会有同样的效果

    如果有人使用的是C#也可以参照博客:http://www.cnblogs.com/cdp1591652208/p/9005854.html

       

       

       

  • 相关阅读:
    清华大学2015年自主招生暨领军计划试题
    高斯取整函数专题
    国际上的数学比赛
    清华大学数学系本科用什么教材?
    数学人眼中的湖北
    北京十一学校潘国双:激发学习的内在动力
    数学家Erdos的故事
    CentOS7关于网络的设置
    MySQL表连接
    MySQL的sql解析
  • 原文地址:https://www.cnblogs.com/junjunjun123/p/9301095.html
Copyright © 2011-2022 走看看