FFmpeg入门基础

news/2024/11/2 17:39:35/

FFmpeg 是什么

FFmpeg 既是一款音视频编解码工具,同时也是一组音视频编解码开发套件,作为编解码开发套件,他为开发者提供了丰富的音视频处理的调用接口。

FFmpeg 提供了多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种色彩格式转换、多种采样率转换、多种码率转换等; FFmpeg 框架提供了多种丰富的插件模块,包含封装与解封转的插件、编码与解码的插件等。

官方地址:https://www.ffmpeg.org/

GitHub:https://github.com/FFmpeg/FFmpeg

为什么要学 FFmpeg 开发

FFmpeg 是一款知名的开源音视频处理软件,它提供了丰富而友好的接口支持开发者进行二次开发。

FFmpeg 读作 “ef ef em peg” ,其中的 “FF” 指的是 “Fast Forward”,“mpeg” 则是 “Moving Picture Experts Group” (动态图像专家组)。

FFmpeg 项目功能复杂而庞大,基本上支持所有常见的音视频处理操作,如封装格式转换、音视频转码、音视频播放和剪辑、视频添加水印滤镜等。

尽管 FFmpeg 功能强大,但是由于其采用的是带有传染性的 LGPL/GPL 开源协议,所以一些大厂基本上都是自己独立开发类似的音视频处理库,甚至在接口和组织模块上模仿 FFmpeg 。

功能模块

FFmpeg 有六个常用的功能模块:

  1. libavformat:多媒体文件或协议的封装和解封装库,如 Mp4、Flv 等文件封装格式,RTMP、RTSP 等网络协议封装格式;
  2. libavcodec:音视频编解码库;
  3. libavfilter:音视频、字幕滤镜库;
  4. libswscale:图像格式转换库;
  5. libswresample:音频重采样库;
  6. libavutil:工具库;

Android编译

编译方式

参考 https://juneyang.blog.csdn.net/article/details/126819292。

编译出来引入到我们的项目我们就可以进行C++开发了,但是没基础难度高。

所以可以先从别人封装好的工具入手

FFmpegKit

https://github.com/arthenica/ffmpeg-kit

FFmpegKit是一组在Android、iOS、Linux、macOS、tvOS、Flutter和React Native应用程序中使用FFmpeg的工具。

主要通过命令的方式进行对FFmpeg的调用。

支持的命令可以参考:https://ffmpeg.org/ffmpeg.html

示例

获取媒体信息的方式

FFprobeKit.getMediaInformation(videoPath).mediaInformation

处理音视频命令


# # 把前十帧转换为GIF
# -i $videoPath -vframes 10 -y -f gif ${outputPath}/ten.gif
# # 去掉视频的声音
# -i $videoPath -vcodec copy -an -y ${outputPath}/rmAudio.mp4
# # 视频音频进行合并
# -i ${outputPath}/rmAudio.mp4 -itsoffset 0.5 -i ${filesDir.absolutePath}/wind.mp3 -c:v copy -c:a aac -strict experimental -y ${outputPath}/merge.mp4
# #视频添加水印
# -i $videoPath -i ${filesDir.absolutePath}/avatar.png -filter_complex overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2 -y ${outputPath}/waterMark.mp4

直播推流和接收流

## 直播推流
# -re -i $videoPath -c copy -f flv rtmp://124.222.158.29/live/livestream?secret=dfdb1077b4474c059c569044f8923c2d"
## 接收流
# -i rtmp://124.222.158.29/live/livestream?secret=dfdb1077b4474c059c569044f8923c2d -c copy -y ${outputPath}/push.mp4"

NEXT FFmpeg+Android SurfaceView 实现一个简单的播放器


http://www.ppmy.cn/news/118613.html

相关文章

c语言程序软件下载,C语言下载_C语言官方下载【C语言编程软件】-太平洋下载中心...

微软官方 Visual C 2013 (x86、x64)位运行库 Visual C Redistributable Packages 安装运行时组件,C语言下载版的组件是在未安装 Visual Studio 2013 的计算机上运行使用 Visual Studio 2013 开发的应用程序所必需的。这些软件包安装以下库的运行时组件:C…

最新版手机端C/C++语言编程的软件

今天介绍一个软件—C编译器(c4droid),可以直接编辑运行C/C程序,代码高亮、语法检查,使用起来非常不错,下面我简单介绍一下这个软件的安装和使用: 安装C编译器,这个直接在手机应用中搜索就行,如…

几个常用的C语言编程工具,极力推荐!

c语言编程软件适于编写系统软件,是学习编程的同学们的必备软件。c语言一种非常强大的计算机语言,应用非常广泛,不仅仅是在软件开发上,而且各类科研都会用到c语言。今天小编给大家汇总下C语言的编程工具 中国有句古话叫做“工欲善其…

C语言编程工具软件推荐

c语言编程软件适于编写系统软件,是学习编程的同学们的必备软件。c语言一种非常强大的计算机语言,应用非常广泛,不仅仅是在软件开发上,而且各类科研都会用到c语言。今天小编给大家汇总下C语言的编程工具 中国有句古话叫做“工欲善其…

手机上做c语言作业的软件下载,c语言编程软件手机版下载-C语言编程 安卓版v1.0.2-PC6安卓网...

C语言编程这是为众多考证用户专门制作的在线学习软件,C语言编程app将考证要用到的相关知识归纳好经过题库的形式来让大家熟练和上手,C语言编程app可以协助大家经过二级计算机考试。 软件介绍 C语言编程是一款掌上C语言学习软件,平台为用户提供…

Windows下学习C语言有哪些集成开发软件?

前言 初学者学习C语言遇到的最大困难想必就是搭建环境了,相当多的初学者就是被搭建环境导致放弃了学习编程,就我自己的经验而言,初学编程不应该受限于环境,使用成熟好用的环境就可以了,之后熟悉一些可以在慢慢探究。想到大多数小伙伴都是使用Windows系统,今天就先说下Wi…

常用的C语言编程工具

中国有句古话叫做“工欲善其事,必先利其器”,可见我们对工具的利用是从祖辈就传下来的,而且也告诉我们在开始做事之前先要把工具准备好。有了好的工具那么我们做起事来也会事半功倍。学习C语言也是一样的,对于初学者来说往往选择一…

C语言编程软件的选择的下载

实际开发中,除了编译器是必须的工具,我们往往还需要很多其他辅助软件,例如编辑器、调试器、文件管理等,这些工具通常被打包在一起,统一发布和安装,例如 Visual Studio、Dev C、Xcode、Visual C 6.0、Code::…