ffmpeg的pcm、yuv小知识点

ffmpeg的pcm、yuv小知识点

pcm、yuv保存调用,写个通用工具方法,平时快速保存,和调用方便查看自己bug

ffmpeg的AVFrame存储 yuv

调用方法

保存方法

复制代码
void save_yuv420p_file(unsigned char *y_buf , unsigned char *u_buf,unsigned char *v_buf,int linesizey,int linesizevu, int width,int height,char *filename)
{
    int i = 0;
    static FILE *f= NULL;
    if(f == NULL){
        f = fopen(filename,"wb");
    }
    int height_half = height / 2, width_half = width / 2;
    int y_wrap = linesizey;
    int u_wrap = linesizevu;
    //int u_wrap = pFrame->linesize[0];
    //int v_wrap = pFrame->linesize[0];
    int v_wrap = linesizevu;

    if (f != NULL) {
        //save y
        for (i = 0; i < height; i++)
            fwrite(y_buf + i * y_wrap, 1, width, f);
        //save u
        for (i = 0; i < height_half; i++)
            fwrite(u_buf + i * u_wrap, 1, width_half, f);
        //save v
        for (i = 0; i < height_half; i++)
            fwrite(v_buf + i * v_wrap, 1, width_half, f);
        fflush(f);
    }

}

ffmpeg命令播放yuv:(修改对应宽高和yuv文件路径)

复制代码
ffplay -video_size 720x1280 -i /Users/shenjianbin/Downloads/camera2_tencent.yuv

ffmpeg的AVFrame存储 pcm

复制代码
void savess_file(uint8_t *buf, int size,char *filename)
{
    static FILE *f= NULL;
    if(f == NULL){
        f = fopen(filename,"wb");
    }
    if (f != NULL) {
       fwrite(buf, sizeof(uint8_t), size, f);
        fflush(f);
    }

}

命令行操控

复制代码
 ffplay -ar 44100 -ac 2 -f  f32le /Users/songlin/audio/qt_record/05_05_23_05_35.pcm

ar: 采样率

ac: 声道数

f: 采样格式

s16le:PCM signed 16-bit little-endian

更多PCM的采样格式可以使用命令查看

Windows:ffmpeg -formats | findstr PCM

Mac:ffmpeg -formats | grep PCM

相关推荐
鲲穹AI全能助理5 天前
实用音频合成工具分享:灵境配音 使用场景与功能说明
ffmpeg·音视频
我是Superman丶5 天前
Windows系统FFmpeg官方下载+完整安装配置保姆级教程(2026最新版)
windows·ffmpeg
luoyayun3617 天前
Qt + FFmpeg 视频工具:视频一键压缩功能实现
qt·ffmpeg·音视频·视频压缩
雪的季节7 天前
ffmpeg源码国内gitee下载
ffmpeg·gitee
Mister Leon9 天前
FFmpeg - Jetson Orin 实战部署
ffmpeg
阿拉斯攀登10 天前
售货柜实战:IPC 拉流 → 抽帧 → YOLO 识别完整流水线
yolo·ffmpeg·音视频·webrtc·视频编解码
阿拉斯攀登10 天前
RTSP 拉流与录制:IPC 摄像头本地录像完整方案
ffmpeg·音视频·webrtc·实时音视频·视频编解码
坐望云起11 天前
FFmpeg.wasm 纯浏览器端视频压缩与格式转换实战:零服务器、零上传、100% 隐私
服务器·ffmpeg·wasm
阿拉斯攀登11 天前
FFmpeg 转码详解:封装格式、编码器、码率控制
ffmpeg·音视频·webrtc·实时音视频·视频编解码
阿拉斯攀登11 天前
FFmpeg 入门:命令行的 20 个常用场景
ffmpeg·音视频·webrtc·视频编解码