暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ffplay播放PCM

Cube2048 2022-09-21
3560

# 前言

之前经过编译安装FFmpeg(FFmpeg编译安装)后,我们就可以使用相关的命令行工具了,前面我们有用过ffmpeg和ffprobe,今天来尝试使用一下ffplay播放一段PCM音频。

# 正文

## 提取PCM

首先我们要使用ffmpeg命令从视频中提取一段PCM数据,命令如下

    ffmpeg -i xxx.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm

    上面的参数解析如下:

    • -i:输入的视频

    • -vn:video no 过滤视频元素

    • -ar:音频的采样率为44100Hz

    • -ac:2表示双声道

    • -f:音频的数据存储格式 s16le,s代表有符号的,16代表每一个数值用16位表示


    ## 播放PCM

    得到PCM数据之后,我们就可以使用ffplay来播放,命令如下:

      ffplay -ac 2 -ar 44100 -f s16le out.pcm

      输入上面命令,输出提示如下:

        allenchen@iMac FFmpeg % ffplay -ac 2 -ar 44100 -f s16le out.pcm
        zsh: command not found: ffplay

        提示ffplay命令未找到,也就是没有识别或是安装的意思,看到这里不禁心生疑惑,之前我们明明进行了ffmpeg的编译安装了,按理应该是支持ffplay的了。

        经过一番上网查找,才发现原来ffplay需要系统安装过sdl2和pkg-config,不然将无法使用ffplay

        由于我的电脑上已经安装了pkg-config(可通过命令pkg-config -help,如果没安装会跟上面同样提示没找到),因此只需要再安装sdl2


        ## 安装sdl2

        由于是在Mac环境上,因此我们可以直接通过brew安装,输入命令

          brew install sdl2

          也可以到sdl官网(http://www.libsdl.org)上下载安装


          ## 重新编译安装ffmpeg

          安装好sdl2之后,我们必须重新编译安装一下ffmpeg,这样才能使用ffplay,依次执行以下命令

            ./configure --enable-shared --enable-libx264 --enable-gpl --enable-pthreads
            make
            make install

            这里命令添加了--enable-libx264 是因为之前安装过x264,感兴趣的可以参考FFmpeg支持x264

            等命令执行完就可以了


            ## ffplay播放PCM

            再次执行命令

              ffplay -ac 2 -ar 44100 -f s16le out.pcm

              这时候会弹出一个如下的窗口,同时也能听到音频在播放


              # 结尾

              本文主要记录了如何使用ffmpeg提取PCM和使用ffplay播放,以及遇到的问题和解决,内容相对简单,感兴趣的读者可以亲自操作下。

              文章转载自Cube2048,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论