ffmpeg 入门教程
1.在terminal,安装ffmpeg开源库
#brew install ffmpeg
2.新建一个目录first_ffmpeg,并在first_ffmpeg目录下新建ffmpeg目录
3.拷贝/usr/local/Cellar/ffmpeg/4.1.1/下的lib和include文件夹到上一步中的ffmpeg目录
4.在first_ffmpeg,创建如下内容的CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(first_ffmpeg)
include_directories("/The/path/to/first_ffmpeg/ffmpeg/include")
link_directories("/The/path/to/first_ffmpeg/ffmpeg/lib")
link_libraries(libavcodec.a)
link_libraries(libavdevice.a)
link_libraries(libavfilter.a)
link_libraries(libavformat.a)
link_libraries(libavutil.a)
link_libraries(libpostproc.a)
link_libraries(libswresample.a)
link_libraries(libswscale.a)
add_executable(${PROJECT_NAME} "main.cpp")
5.书写main函数如下
#include <iostream>
using namespace std;
extern "C"
{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
#include "libavdevice/avdevice.h"
}
int main()
{
cout << "Hello FFmpeg!" << endl;
av_register_all();
unsigned int version = avcodec_version();
cout << "FFmpeg version is:" << version << endl;
cout << "Hello World!" << endl;
return 0;
}
6.编译运行
#mkdir build
#cd build
#cmake ..
#make
#./first_ffmpeg
输出:
Hello FFmpeg!
FFmpeg version is:3810148
Hello World!
7.工程first_ffmpeg目录结构如下
#first_ffmpeg tree -L 2
.
├── CMakeLists.txt
├── build
│ ├── CMakeCache.txt
│ ├── CMakeFiles
│ ├── Makefile
│ ├── cmake_install.cmake
│ └── first_ffmpeg
├── ffmpeg
│ ├── include
│ └── lib
└── main.cpp
ffmpeg 入门教程的更多相关文章
- FFmpeg 入门(7):Seeking
本文转自:FFmpeg 入门(7):Seeking | www.samirchen.com 处理 seek 命令 我们将为播放器添加 seek 的能力.这个过程中,我们会看到 av_seek_fram ...
- FFmpeg 入门(6):音频同步
本文转自:FFmpeg 入门(6):音频同步 | www.samirchen.com 音频同步 上一节我们做了将视频同步到音频时钟,这一节我们反过来,将音频同步到视频.首先,我们要实现一个视频时钟来跟 ...
- FFmpeg 入门(5):视频同步
本文转自:FFmpeg 入门(5):视频同步 | www.samirchen.com 视频如何同步 在之前的教程中,我们已经可以开始播放视频了,也已经可以开始播放音频了,但是视频和音频的播放还未同步, ...
- FFmpeg 入门(4):线程分治
本文转自:FFmpeg 入门(4):线程分治 | www.samirchen.com 概览 上一节教程中,我们使用 SDL 的音频相关的函数来支持音频播放.SDL 起了一个线程来在需要音频数据的时候去 ...
- FFmpeg 入门(2):输出视频到屏幕
本文转自:FFmpeg 入门(2):输出视频到屏幕 | www.samirchen.com SDL 我们这里使用 SDL 来渲染视频到屏幕.SDL 是 Simple Direct Layer 的缩写, ...
- FFmpeg 入门(3):播放音频
本文转自:FFmpeg 入门(3):播放音频 | www.samirchen.com 音频 SDL 提供了播放音频的方法.SDL_OpenAudio 函数用来让设备播放音频,它需要我们传入一个包含了所 ...
- FFmpeg 入门(1):截取视频帧
本文转自:FFmpeg 入门(1):截取视频帧 | www.samirchen.com 背景 在 Mac OS 上如果要运行教程中的相关代码需要先安装 FFmpeg,建议使用 brew 来安装: // ...
- Fakeapp 入门教程(1):安装篇!
在众多AI换脸软件中Fakeapp是流传最广,操作最简单的一款,当然他同样也是源于Deepfakes. 这款软件在设计上确实是花了一些心事,只要稍加点拨,哪怕是再小白的人也能学会.下面我就做一个入门教 ...
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
随机推荐
- 中国移动基于ARM/x86服务器的Ceph性能对比
2018年11月17日,Ceph中国行首次走进杭州,万众期待的杭州站沙龙如期而至,虽然杭州已经开始降温,阵雨不断,但活动现场依然热度爆表,杭州各大IT公司的从业人员和Ceph爱好者纷纷而来. 中国移动 ...
- web.py尝试性学习!
首先导入web.py模块! import web 没有的话就: pip install web web.py的URL结构: urls = ( '/', "index" ) 第一部分 ...
- Configure First SpringMVC project in IntelliJ IDEA(fail)
Configure First SpringMVC project in IntelliJ IDEA 13 The Mechanism of Spring MVC frameworks by Java ...
- selenium ie 模拟request pahonjs
- maven - 配置强制从指定仓库拉取jar包
从官方maven仓库拉取依赖,会超级慢.可配置settings.xml,强制从私服拉取 <mirrors> <mirror> <id>nexus-releases& ...
- 可视化库-seaborn-回归分析绘图(第五天)
1. sns.regplot() 和 sns.lmplot() 绘制回归曲线 import numpy as np import pandas as pd from scipy import stat ...
- as3 程序域
问题我要在应用程序中载入其他域的swf文件,并且允许它访问程序中的 ActionScript 解决办法使用flash.system.Security.allowDomain( ), flash.sys ...
- AS3获取对象类名,getDefinitionByName,getQualifiedClassName,getQualifiedSuperclassName
首先先告诉大家,我要讲的是flash.utils包中的getDefinitionByName,getQualifiedClassName,getQualifiedSuperclassName可能帮助文 ...
- java常用的Utils写法
Utils: 获取年龄 属性文件获取 BeanCopy 分页 MapUtils 获取年龄: /** * 根据传入的日期计算年龄,因时间戳是从1970年开始计算的 * @param date * ...
- Redis 配置节
Redis 后面的配置基于4.0.9版本=>>>不指定版本信息的配置说明都是耍流氓 比如在4.0.9中没有vm相关的及glueoutputbuf的配置信息 部分常用配置节(后面有详细 ...