ffmpeg源码编译

ffmpeg源码编译

  • 简介

ffmpeg是一套功能强大的多媒体处理工具,它几乎涵盖了当前所有主流的多媒体数据封装格式、多媒体传输协议及音视频编解码器,并支持多媒体后处理,视频色彩转换、滤镜和缩放等,其主持的主流协议如下:HTTP、RTP、RTSP、RTMP、HLS、UDP等。

  • ffmpeg核心库

libavcodec:提供全面的编解码实现。它提供通用编码/解码框架,并包含用于音频,视频和字幕流的多个解码器和编码器,以及多个比特流滤波器。共享架构提供从比特流i/o到dsp优化的各种服务,并且使得它适合于实现健壮和快速的编解码器。
libavformat:提供全面的音视频容器格式的封装和解析以及所支持的协议。它为音频、视频和字幕流的复用和解复用(多路复用和解复用)提供了一个通用框架。它包括多媒体容器格式的多个多路复用器和多路分解器。它支持几种输入和输出协议来访问媒体资源。
libavutil:提供一些公共函数。它是一个使用程序库,主要用以辅助多媒体编程,包含安全可移植字符串函数,随机数生成器,数据结构,附件数学函数,加密和多媒体相关功能等。该库的目标为模块化、小、高效、有用。
libavfilter:提供音视频过滤器,如视频加水印、音频变声。
libavdevice:提供支持众多设备数据的输入与输出,如读取摄像头数据、屏幕录制等,可用于很多常见的多媒体输入/输出设备抓取和渲染。
libswresample:提供音视频重采样,重新矩阵化和样本格式化转换等操作。
libswscale:提供对视频图像进行色彩转换、缩放以及像素格式转换等。
libpostproc:多媒体后处理器。

  • ffmpeg中工具

ffmpeg:流媒体的编解码、格式转换以及多媒体流的内容处理工具;
ffplay:使用FFmpeg编解码的播放器;
ffprobe:多媒体分析工具;
ffserver:流媒体服务器。

  • ffmpeg安装

第一步 安装相关的依赖
sudo apt-get install update
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev \
libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \
libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev
sudo apt-get install yasm
sudo apt-get install libx264-dev # H.264 依赖库
sudo apt-get install cmake mercurial
sudo apt-get install libfdk-aac-dev # aac audio 依赖库
sudo apt-get install libmp3lame-dev # mp3 audio 依赖库
sudo apt-get install libopus-dev # Opus audio 依赖库
sudo apt-get install ctags # 文档工具
第二步 下载源码、解压、编译、安装
官网下载对应版本的源码
tar xvf ffmpeg-*.*.*.tar
cd ffmpege-*.*.*
./configure
sudo make
sudo make install
安装完成后,可以利用ffmpeg -v检查是否安装成功。

  • ffmpeg使用工具

将输出文件的视频比特率设置为64kbit/s
ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi
强制输出文件的帧速率24帧
ffmpeg -i input.avi -r 24 output.avi
强制输入文件的帧速率(仅对raw格式有效)为1帧和输出文件的帧速率为24帧的
ffmpeg -r 1 -i input.m2v -r 24 output.avi

  • ffmpeg转码流程

    输入文件 (经解复用) 获取编码数据数据包 (经解码器) 解码一帧 (经重新编码) 得编码数据包 (经复用器) 得输出文件。

  • ffserver使用工具

使用中,需要注意修改./doc/ffserver.conf对应的配置信息然后执行如下命令:
ffserver -f ./doc/ffserver.conf & ffmpeg -i inputfile http://localhost:8090:feed1.ffm
之后在电脑中浏览器中输入url查看即可,对应url如下:
http://localhost:8090/test.asf即可。

  • ffplay工具使用

ffplay工具主要用于播放使用使用,可以使用如下命令进行视频播放:
ffplay -i ../input.avi即可播放。

  • 处理音视频例程

从文件中找到视频流;
从视频流中读取数据包;
如果不是一帧完整的数据就继续执行上一步;
对帧数据做一些处理;
然后循环执行以上操作,直到结束。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值