FFmpeg 媒体文件播放 格式变化流程简述

例如,要播放一个 MP4 文件,这个文件要经过啥呢?

 一个 MP4 文件中包含了:视频压缩数据流(如H.264、H.265)和音频压缩数据(如aac、MP3)

首先需要经过解码成为原始数据,视频原始数据是 YUV,音频原始数据是 PCM

然后原始数据再根据各个平台需要的格式去做适配再播放


以 Android 为例:

安卓手机屏幕都是以 RGB 来显示的,所以需要将 YUV 转化为 RGB 数据才能正常显示

安卓设备的喇叭仅支持16位,而 PCM 数据是32位的,所以需要进行转码才能正常播放音频


那么编解码和转码都是可以用 FFmpeg完成,非常方便

解压缩视频为YUV数据:

ffmpeg -i input.mp4 -c:v rawvideo -pix_fmt yuv420p output.yuv

 解压缩音频为PCM数据:

ffmpeg -i input.mp4 -c:a pcm_s16le output.wav

 YUV转换到RGB:

ffmpeg -s:v widthxheight -pix_fmt yuv420p -i input.yuv -c:v rawvideo -pix_fmt rgb24 output.rgb

 PCM音频数据32位转换为16位:

ffmpeg -i input.wav -c:a pcm_s16le output.wav

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值