首页 > 其他分享 >ffmpeg处理音视频

ffmpeg处理音视频

时间:2024-11-09 09:45:00浏览次数:5  
标签:视频 封装 FFmpeg 处理 音视频 mp4 ffmpeg

FFmpeg怎么念
FFmpeg念作ef ef em peg,其全称为 Fast Forward Moving Picture Expert Group

FFmpeg是什么
FFmpeg是一套领先的多媒体框架,是一套开源且跨平台的多媒体解决方案,提供了音视频的编码、解码、转码、封装、解封装、流媒体、滤镜、播放等功能,官网地址为 ffmpeg.org

FFmpeg可以用来干嘛
视频播放器:很多视频播放器使用FFmpeg作为播放器内核,实现拉流、解封装、解码等功能,如射手播放器、暴风影音、QQ影音、KMPlayer、ijkplayer、MPlayer、VLC等,连Chrome浏览器的视频播放也使用了FFmpeg代码
视频转换工具:基本上市面上做视频格式转换、视频压制的软件都基于FFmpeg来实现,比如格式工厂、小丸工具箱等
除了播放和转换,其他如音视频录制、直播推流、滤镜应用等很多场景都可以使用FFmpeg

FFmpeg的组成
使用FFmpeg有两种方式:

命令行工具:FFmpeg提供了三个命令行工具直接进行多媒体处理

ffmpeg 转换多媒体文件格式

ffplay 基于SDL和FFmpeg库的简单媒体播放器

ffprobe 简单的多媒体流信息分析工具

模块库:FFmpeg提供了一些模块库,供开发者进行二次开发

libavutil 提供一些基础的工具函数,比如随机数生成、基础数据结构、文件操作、MD5 SHA加密方法等

libavcodec 提供音视频的编码器、解码器,支持目前多媒体领域中绝大多数常用的编解码格式。除了自带的编码格式外,还支持第三方的编解码器,比如使用x264编解码器支持H.264/AVC编解码,使用x265编解码器支持H.265/HEVC编解码

libavformat 提供媒体格式的解封装和封装,支持目前多媒体领域中绝大多数媒体封装格式,包括RTMP、RTSP、HLS等流媒体协议封装和MP3、MP4、FLV、TS等媒体文件封装。还支持媒体封装格式扩展,增加自己定制的封装处理模块

libavdevice 提供音视频采集和渲染相关的输入/输出设备接口,兼容大部分通用多媒体输入/输出软件框架,比如Video4Linux、Video4Linux2、VfW、ALSA等

libavfilter 提供通用的音频、视频、字幕等滤镜处理框架

libswscale 提供深度优化的视频图像转换API,比如图像缩放(1080p转换成720p)、像素格式转换(yuv转rgb)等

libswresample 提供深度优化的音频重采样API,比如采样频率转换(44100Hz转换到8000Hz)、声道格式转换(立体声转换为单声道)、样本格式转换(s16的PCM数据转换为f32的PCM数据)等

FFmpeg基础使用示例
视频格式转换:比如将avi文件转成mp4格式
ffmpeg -i input.avi output.mp4
视频剪切:比如从时间为00:00:15开始,截取5秒钟的视频 (-ss表示开始切割的时间,-t表示要切多少)
ffmpeg -ss 00:00:15 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4
提取音频:比如将一个MV变成音频文件 (-vn 不处理视频) https://www.octfgroup.com/
ffmpeg -i 千千阙歌现场版.mp4 -acodec copy -vn output.aac
提取视频:比如将一个视频去除音频 (-an 不处理音频)
ffmpeg -i input.mp4 -vcodec copy -an output.mp4
视频加水印:比如给视频右上角加上淘宝直播图片水印
ffmpeg -i input.mp4 -i 淘宝直播_logo.png -filter_complex overlay output.mp4
视频缩放:比如将1920x1080分辨率的视频缩小到960x540
ffmpeg -i input.mp4 -vf scale=960:540 output.mp4
前端和FFmpeg有什么关联
JS播放器:可以基于FFmpeg和WebAssembly实现浏览器端的JS播放器,或扩展浏览器端其他的音视频能力,更多详情可参考 《Web端H.265播放器研发解密》
Node模块 fluent-ffmpeg:node.js中非常实用的模块,该模块简化了ffmpeg复杂的命令操作,且配合文件上传以及视频流的处理等非常实用,更多详情可参考 fluent-ffmpeg
安装
brew install ffmpeg

标签:视频,封装,FFmpeg,处理,音视频,mp4,ffmpeg
From: https://www.cnblogs.com/sathcal/p/18536330

相关文章

  • ffmpeg实现图片转视频以及视频转图片
    简介:因为计网作业需要,今天就是讲一讲如何使用ffmpeg把图片转视频以及视频转图片。一、下载ffmpeg你可以在ffmpeg的bin文件下看见以下三个.exe文件二、建个快速打开命令行的bat文件可以新建文件夹.txt->在.txt文件中输入cmd并保存->将.txt后缀名改成.bat可以看一下打开.bat文......
  • ffmpeg安装教程
    1下载所需要的软件mkdir/usr/local/softcd/usr/local/softwgethttps://www.ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2wgethttp://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gzfreetype下载地址http://www.linuxfromscratch.org/blfs/view/svn/gen......
  • FFmpeg原理介绍
    本书《FFmpeg原理》主要讲解FFmpeg原理性的知识,前面几章主要讲解一些音视频开发的基础知识,例如原始数据YUV跟RGB,封装格式FLV跟MP4,压缩编码的基本概念,还有封装格式分析。前面几章是音视频开发,流媒体技术的基础,后面的章节主要讲解如何搭建FFmpeg各种调试环境,同时提供FF......
  • ffmpeg特效处理
    今天继续学习ffmpeg工具,上篇博客主要讲的是ffmpeg对音频和视频的处理,今天这篇是对图像的处理,没想到也能操作。它的命令和处理音视频的一样,都是命令行。能够处理图像的尺寸、裁剪、旋转、模糊、去噪、加水印和生成缩略图等。1、图像处理命令1.1、调整图像大小ffmpeg-iinput.jpg......
  • FFmpeg常用命令
    视频转MP4ffmpeg-iD:\ffmpeg\video\2\2.mp4-vcodeccopy-anD:\v\s\2.mp4视频获取音频ffmpeg-iD:\ffmpeg\video\3\2.mp4-acodeccopy-vnD:\v\m\2.aac视频音频合并ffmpeg-iD:\v\s\2.mp4-iD:\v\m\2.aac-c:vcopy-c:aaac-strictexperimentalD:\v\r\2......
  • Springboot 整合 Java DL4J 打造自然语言处理之语音识别系统
    ......
  • Java 开发中的 9 个异常处理的避坑技巧:实战案例解析
    文章目录1.不要滥用catch一切的异常2.使用自定义异常明确表达业务逻辑3.切勿在finally中使用return4.避免吞掉异常5.避免在循环中创建异常6.利用`try-with-resources`自动关闭资源7.避免使用异常控制流程8.避免频繁创建和抛出自定义异常9.细分捕获异常类......
  • ethereum.FilterQuery 日志查询处理自定义事件
    前言:在开发中也是遇到这个问题了,并非常见的Transfer,Approve等在ERC20中定义的事件,只要你的事件在sol文件中存在,那还好处理,但是如果不存在,刚开始接触的时候,你可能就有点懵,我也是找了两天,查阅了很多资料,并没什么niao用,偶然看见了区块浏览器中的log才恍然大悟。问题:Uniswa......
  • 华为机试HJ30 字符串合并处理
    首先看一下题描述按照指定规则对输入的字符串进行处理。详细描述:第一步:将输入的两个字符串str1和str2进行前后合并。如给定字符串"dec"和字符串"fab",合并后生成的字符串为"decfab"第二步:对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从......
  • 第二周学习笔记Linux:Linux用户权限管理 |文本处理|shell基础
    用户权限命令以及ACL权限相关命令1.Linux安全模型资源分派:Authenticaton:登陆认证,验证用户身份Authorization:授权,不同的用户设置不同权限Accouting:审计,检查用户的时候行为即Linux的AAA认证,是针对网络设备的网络访问控制策略和安全模型1用户Linux是多系统用户,可以......