ffmpeg编辑(音最简单基础知识一篇文章带你入门ffmpeg干货)

目录

ffmpeg环境搭建

1'windows平台

2.Linux平台

音视频基础入门

1.音视频基础知识

2.常用工具

Medialnfo

VLC播放器

ffmpeg命令实战

1视频录制命令

2多媒体文件的分解/复用命令

3裁剪相关命令

4图片/视频互转命令

5直播相关命令

6各种滤镜命令

ffmpeg编程实战流媒体实战WebRT实战

今天先给大家聊一下基础的学习的小伙伴,可以关注 私信可以一起学习交流

ffmpeg编辑(音最简单基础知识一篇文章带你入门ffmpeg干货)(1)

ffmpeg环境搭建

获取FFmpeg源码包

有两个途径可以获取:

1. ffmpeg官方网站:http://www.ffmpeg.org/

在官网找到需要的版本,我选用的是 FFmpeg 3.4.4 “Cantor” 版本,因为最新版本没有ffserver。然后在Linux 执行下载、解压命令:

[root@localhost heijunma]# wget http://www.ffmpeg.org/releases/ffmpeg-3.4.4.tar.gz

[root@localhost heijunma]#tar -zxvf ffmpeg-3.4.4.tar.gz

1

2

解压后可以查看ffmpeg的第一级目录结构:

每个目录的结构后面再讲

2. github开源社区地址:

git://source.ffmpeg.org/ffmpeg.git

可以用git将代码fork到本地,当然使用git之前请先安装git版本控制工具,需要根据自己的系统来安装对应的版本,Linux的架构信息可以由 uname -a 获取

[heijunma@localhost github]$ uname -a

Linux localhost.localdomain 2.6.32-754.3.5.el6.x86_64 #1 SMP Tue Aug 14 20:46:41 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

1

2

经查询得知系统是x86_64。因此我们需要安装git.x86_64版本,执行如下命令安装git版本控制工具

[root@localhost github]# yum install git.x86_64 -y

1

安装好之后,新建一个git工程目录,然后git初始化,全局配置用户名和邮箱,需要与Github相同:

[root@localhost github]# git init

Initialized empty Git repository in /home/heijunma/ffmpeg-3.4.4/github/.git/

[root@localhost github]#git config --global user.name "SugarWilliam"

[root@localhost github]#git config --global user.email "276190191@qq.com"

[root@localhost github]#git config --list

user.name=SugarWilliam

user.email=276190191@qq.com

core.repositoryformatversion=0

core.filemode=true

core.bare=false

core.logallrefupdates=true

1

2

3

4

5

6

7

8

9

10

11

这样就初始化完成了,接着我们在github上clone一个ffmpeg3.4.4版本仓库到本地

登录你自己的GitHub账户(需要自己申请),进入https://github.com/FFmpeg/FFmpeg/branches 查看不同版本分支,选择release/3.4分支直接进行源码clone

[root@localhost github]# git clone -b release/3.4 https://github.com/FFmpeg/FFmpeg.git

ffmpeg编辑(音最简单基础知识一篇文章带你入门ffmpeg干货)(2)

3. 配置

Eg:./configure--enable-shared --enable-memalign-hack --disable-debug --prefix=/home/heya/ffmpeg/out/ --arch=arm --cross-prefix=arm-hisiv200-linux- --target- os=linux

注意:

--prefix=/home/heya/ffmpeg/out/ 生成文件(可执行文件,头文件,库文件)输出的路径。

--arch=arm 芯片方案

--target-os=linux 系统方案

--arch=arm --cross-prefix=arm-hisiv200-linux- 交叉编译工具链

4. 编译 make

5. 安装输出make install,输出(bin; include;lib;share四个文件夹)

6. 可执行行文件移植: 将lib中的非静态库移植到根文件系统的lib或者usr/lib/目录下,将bin移植到根文件系统bin目录下。

使用ffmpeg

Eg:ffmpeg -i output.ts -codec copy-hls_list_size 120 -hls_time 10 testlive.m3u8

8. 库移植开发:

# 将lib中的非静态库移植到根文件系统的lib或者user/lib/目录下。

# 将lib中的非静态库移植到开发项目的指定库文件夹中。

# 将include下面的所有文件和文件夹拷贝到开发项目的指定头文件夹中。

# 此时已经将环境搭建完成,可以根据自己的需求对库文件和头文件进行裁剪

常用工具

ffmpeg视频处理工具(视频剪切、转码、合并......)

1、ffmpeg的下载和安装

2、ffmpeg常用处理功能

1、视频分离成图片序列:video—to—images(即视频帧)

2、图片序列合成视频:images—to—video

3、视频分离成无声视频和音频:video—to—video&audio

4、视频剪切:cut 参考

5、视频格式转换:format transfer

6、视频文件合并

ffmpeg常见问题总结

1.如果遇到编码后的数据解码的是时候越来越模糊,是应为AVFrame的pts没有设置,加上之后就解决了

2.如果提示解码失败,是应为这句话没有加

if ( vc->flags & AVFMT_GLOBALHEADER )vc->flags |= CODEC_FLAG_GLOBAL_HEADER;

想一起学习的可以关注 私信,可送相关资料内容包括:C/C ,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,ffmpeg流媒体,CDN,P2P,K8S,Docker,Golang,TCP/IP,协程,嵌入式,ARM,DPDK等等。。。

ffmpeg编辑(音最简单基础知识一篇文章带你入门ffmpeg干货)(3)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页