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_ff…
本文转自:FFmpeg 入门(7):Seeking | www.samirchen.com 处理 seek 命令 我们将为播放器添加 seek 的能力.这个过程中,我们会看到 av_seek_frame 用起来有多方便. 我们添加的功能是通过上下左右键能够做快进或快退,其中左右键快进或快退的幅度较小,为 10s,上下键快进或快退的幅度较大,为 60s.所以我们需要在我们的事件处理循环中添加处理按键的逻辑.但是当我们遇到按键事件时,我们不能直接调用 av_seek_frame,我们需要在 deco…
本文转自:FFmpeg 入门(6):音频同步 | www.samirchen.com 音频同步 上一节我们做了将视频同步到音频时钟,这一节我们反过来,将音频同步到视频.首先,我们要实现一个视频时钟来跟踪视频线程播放了多久,并将音频同步过来.后面我们会看看如何将音频和视频都同步到外部时钟. 实现视频时钟 与音频时钟类似,我们现在要实现一个视频时钟:即一个内部的值来记录视频已经播放的时间.首先,你可能会认为就是简单地根据被显示的最后一帧的 PTS 值来更新一下时间就可以了.但是,不要忘了当我们以毫秒…
本文转自:FFmpeg 入门(5):视频同步 | www.samirchen.com 视频如何同步 在之前的教程中,我们已经可以开始播放视频了,也已经可以开始播放音频了,但是视频和音频的播放还未同步,我们要怎么办呢? PTS 和 DTS 好在音频和视频都有信息来控制播放时的速度和时机.音频流有一个采样率(sample rate),视频流有一个帧率(frame per second).但是,如果我们只是简单地通过数帧和乘上帧率来同步视频,那么它可能会和音频不同步.实际上我们将使用 PTS 和 DT…
本文转自:FFmpeg 入门(4):线程分治 | www.samirchen.com 概览 上一节教程中,我们使用 SDL 的音频相关的函数来支持音频播放.SDL 起了一个线程来在需要音频数据的时候去调用我们定义的回调方法.现在我们要做的是用线程的方法去改造视频显示这块的逻辑.这样一来会使得代码的机构更模块化,这样改动起来会更简单,尤其是当我们想添加音视频同步逻辑时. 我们从哪开始呢?首先,我们发现我们的 main 函数做的事情太多了:运行 event loop.读取数据包.进行视频解码等等,所…
本文转自:FFmpeg 入门(2):输出视频到屏幕 | www.samirchen.com SDL 我们这里使用 SDL 来渲染视频到屏幕.SDL 是 Simple Direct Layer 的缩写,是一个优秀的跨平台多媒体库,你可以从 http://www.libsdl.org 下载 SDL 的库. SDL 有很多可以将图像绘制都屏幕的方法,其中有一个专门用于将视频渲染到屏幕进行播放,即 YUV overlay. YUV(其实这里叫 YCbCr 更准确)是不同于 RGB 的另一种存储原始图像数…
本文转自:FFmpeg 入门(3):播放音频 | www.samirchen.com 音频 SDL 提供了播放音频的方法.SDL_OpenAudio 函数用来让设备播放音频,它需要我们传入一个包含了所有我们输出需要的音频信息的 SDL_AudioSpec 结构体数据. 在展示接下来的代码之前,我们先说说 PC 上是如何处理音频的.数字音频包含了一长串「音频采样(sample)」,每一个采样代表着一个音频波形的值.声音是在一定的「音频采样率(sample rate)」下被录制下来的,音频采样率即每…
本文转自:FFmpeg 入门(1):截取视频帧 | www.samirchen.com 背景 在 Mac OS 上如果要运行教程中的相关代码需要先安装 FFmpeg,建议使用 brew 来安装: // 用 brew 安装 FFmpeg: brew install ffmpeg 或者你可以参考在 Mac OS 上编译 FFmpeg使用源码编译和安装 FFmpeg. 教程原文地址:http://dranger.com/ffmpeg/tutorial01.html,本文中的代码做过部分修正. 概要 媒…
在众多AI换脸软件中Fakeapp是流传最广,操作最简单的一款,当然他同样也是源于Deepfakes. 这款软件在设计上确实是花了一些心事,只要稍加点拨,哪怕是再小白的人也能学会.下面我就做一个入门教程吧.跟着这个教程来,你肯定会学会的! 玩软件,无非就是两个环节. 如何安装? 如何使用? 下面先来介绍安装部分,可能这才是Fakeapp以及众多换脸软件最难啊的部分.因为这是一个基于深度学习的软件,所以需要装很多和深度学习相关的依赖软件. 整个安装过程可以分成以下几个步骤: 安装CUDA 9.0…
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助webpack将符合条件的源文件转换为对应的目标格式文件.比如index.scss转换成index.css 安装成功后,package.json文件变化如下: 接着,安装extract-text-webpack-plugin,让webpack可以输出css格式的文件 npm install --save-…