在mac系统下ffmpeg的安装方法和音频转码/视频转码流程

字号+ 编辑: 国内TP粉 修订: 种花家 来源: 简书 2023-09-12 我要说两句(0)

网上有很多工具是图形化界面适合小白,如果你是玩苹果系列终端的肯定不太合适了。这里有一套综合教程,专门记录苹果mac系统下如何转码和提取音频的,希望你喜欢。

先从在mac系统中安装ffmpeg开始说起。我们通过第三方工具homebrew开始安装ffmpeg比较方便。

一、前提:安装homebrew

-homebrew 是Mac平台的一个包管理工具,提供了许多Mac下没有的Linux工具等,而且安装过程很简单。

二、安装过程

查看当前电脑是否安装有homebrew

brew

若没有安装,在终端输入下面的命令安装homebrew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

卸载homebrew:

brew cleanup

二、通过homebrew安装FFmpeg

这里要多说一句, 为什么推荐用homebrew去安装, 而不是自己手动搞? 笔者手下有个运维曾经在某博客上搜索安装h265的编码器文件, 折腾了一天,结果编译出来的视频文件, 全部花瓶。说实话还是homebrew香一些。

使用homebrew安装ffmpeg插件的命令如下:

brew install ffmpeg

查看安装ffmpeg的信息

brew info ffmpeg

如果看到有绿色对号✅的代表支持这种库,红色叉子代表不支持。

查看安装ffmpeg的信息

更新ffmpeg

brew update

或者

brew upgrade ffmpeg

安装某一个特定的库如下格式:

brew install [FORMULA...]

例如:安装openssl 库输入以下命令:

brew install openssl

安装某一个特定的库

卸载某个特定的库如下格式:

brew uninstall [FORMULA...]

例如:卸载openssl库输入以下命令:

brew uninstall openssl

三、多媒体音频视频格式转换姿势

0a39041a9fb0aa038de3fb00b7c05793.jpeg

说到这里重点来了,我不是舞扇猪头高晓松,没那么多胡说废话,直接看本章代码命令样例就明白。

视频格式/容器转换

比如你想把一个avi文件,想转为mp4。输入:

ffmpeg -i 原片.avi 目标文件名.mp4

或者想把mp4转成ts格式的

ffmpeg -i 原片.mp4 目标文件名.ts

改变视频的分辨率

改变视频的码率很简单了。一个-s参数搞定, 例如

ffmpeg -i 原片.mp4 -s 1920x1080 目标文件名.mp4

如果发现有个-s参数后面竟然是vga, 例如, 那么用的其实是别名, 举例说明:

ffmpeg -i 原片.mp4 -s vga 目标文件名.mp4

其实就等价于

ffmpeg -i 原片.mp4 -s 640x480 目标文件名.mp4

改变视频的码率

改变码率后, 视频的播放质量和大小会有显著变化。其参数为-b:v  其中:v的意思就是特指改变视频的码率, 而不是音频的码率。

比如网上常用的2.1M的码率和1.5M的码率, 我们想把一个视频码率限定为1.5M怎么办?

ffmpeg -i 原片.mp4 -b:v 1.5M 目标文件名.mp4

ffmpeg改变fps帧率

所谓的fps就是frame per second多少多少帧画面每秒。如果大家接触过电影基本原理就知道,其实视频画面就是由多张快速变换的静态图片叠上去的,帧率越低,画面流畅性越低,但是文件会被压缩的很小。

这里需要用到参数-r后面紧跟着一个值, 例如我想把某视频改成25帧

ffmpeg -i 原片.mp4 -r 25 目标文件名.mp4

提取音频轨道信息

比如我有一个“晓松奇谈”,可是我不想看到他的脸,我只想听声音, 地铁上可以听,咋办?

ffmpeg -i 说说国内的假洋鬼子.mp4 -acodec copy -vn output.aac

上面的命令,默认mp4的audio codec是aac,如果不确定,咱可以暴力一点,不管什么音频,都转为最常见的aac。

ffmpeg -i 奇谭怪论均为博人眼球.mp4 -acodec aac -vn output.aac

单独提取视频

把某个视频文件中的视频提取出来,不要声音

ffmpeg -i input.mp4 -vcodec copy -an output.mp4

ffmpeg的视频剪切能力

经常要测试视频,但是只需要测几秒钟,可是视频却有几个G?这个时候有人会说final cut pro先导进去如何如何,其实你用命令行指定了时间长度就可以切的。

下面的命令,就可以从时间为00:00:15开始,截取5秒视频。

ffmpeg -ss 00:00:15 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4

-ss表示开始切割的时间,-t表示要切多少。上面就是从开始,切5秒钟出来。

使用ffmpeg 将多个MP4 文件合并成一个大的MP4文件?

不妨试一下ffmpeg + ts

这个的思路是先将 mp4 转化为同样编码形式的 ts 流,因为 ts流是可以 concate 的,先把 mp4 封装成 ts ,然后 concate ts 流, 最后再把 ts 流转化为 mp4。

ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i 2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4
阅完此文,您的感想如何?
  • 有用

    1

  • 没用

    0

  • 开心

    0

  • 愤怒

    0

  • 可怜

    0

1.如文章侵犯了您的版权,请发邮件通知本站,该文章将在24小时内删除;
2.本站标注原创的文章,转发时烦请注明来源;
3.交流群: PHP+JS聊天群

相关课文
  • 用网上下载的Mac安装包安装软件时提示“安装包已损坏”

  • 使用FileZilla连接远程服务器

  • 无法打开XXXX, 因为无法验证开发者, 你应该将其扔进垃圾箱

  • mac上的微信文件太大如何清理

我要说说
网上宾友点评