【音视频】ffmpeg音视频处理基本流程

一、ffmpeg音视频处理基本流程

首先先看两条命令

shell 复制代码
ffmpeg -i 1.mp4 -acodec copy -vcodec libx264 -s 1280x720 2.flv
ffmpeg -i 1.mp4 -acodec copy -vcodec libx265 -s 1280x720 3.mkv
  • -i :表示输入源,这里是1.mp4,是当前路径下的视频文件
  • -acodec copy: 用于指定音频编码方式。copy 表示直接复制输入文件的音频流,不进行重新编码。这样可以节省处理时间,同时保留原始音频的质量和编码格式。
  • -vcodec libx264/libx265:-vcodec 用于指定视频编码方式,这里使用libx264/libx265编码器进行H264/H265编码
  • -s 1280x720:指定视频的分辨率,这里使用1280 x 720的分辨率
  • .flv/.mkv:指定输出文件的容器(文件)格式,flv和mkv都是常见的音视频容器

生成后的文件:

使用ffprobe查看转换后的视频参数:

shell 复制代码
ffprobe 2.flv

这里的编码是H.264+AAC 分辨率是1200x720:

shell 复制代码
ffprobe 3.mkv

这里的hevc就是H265,音频使用AAC,分辨率是1280x720

我们来看看具体的命令执行流程是怎么样的:

  • 输入文件 : 例如这里的1.mp4
  • 编码数据包:例如这里的视频编码libx264
  • 解码后的数据帧:解码后得到相应的数据帧,进行后续处理
  • 处理数据帧:比如这里的分辨率转换1280x720,通常使用的是filter来处理
  • 编码数据包:把处理后的数据帧重新编码,例如libx265和libx265
  • 输出文件:比如这里的2.flv和3.mkv

如果采用copy模式就不需要指定编码器了

相关推荐
xcLeigh1 小时前
HTML5实现好看的视频播放器(三种风格,附源码)
前端·音视频·html5
别动哪条鱼2 小时前
SDL 函数对各对象缓冲区的影响
网络·数据结构·ffmpeg
骄傲的心别枯萎4 小时前
RV1126 NO.57:ROCKX+RV1126人脸识别推流项目之读取人脸图片并把特征值保存到sqlite3数据库
数据库·opencv·计算机视觉·sqlite·音视频·rv1126
好游科技5 小时前
IM即时通讯系统:安全可控、功能全面的社交解决方案全解析
安全·音视频·webrtc·im即时通讯·私有化部署im即时通讯·社交app
EasyDSS5 小时前
视频直播点播平台EasyDSS构建高并发、低延迟的远程教学直播新模式
音视频
GIOTTO情5 小时前
多模态舆情监测技术深度解析:Infoseek 如何实现 AI 造假与短视频舆情的精准捕捉?
人工智能·音视频
音视频牛哥6 小时前
C# 开发工业级 RTSP/RTMP 播放器实战:基于 SmartMediakit 的低延迟与高可靠性设计
音视频·rtsp播放器·rtmp播放器·windows rtsp播放器·windows rtmp播放器·c# rtsp播放器·c# rtmp播放器
JellyDDD6 小时前
【悬赏】Android WebRTC 数字人项目回声问题排查(AEC / AudioMode)
音视频·webrtc
于是我说6 小时前
如何判断一个视频到底是真实 MP4 直链,还是流媒体M3U8
网络·音视频
gf13211117 小时前
剪映草稿位置坐标换算
音视频