无为 - 视频截图
type: channel
link: https://ww4k.com/tag/视频截图/
items: ffmpeg简介

ffmpeg简介
type: item
date: 2022-07-01T16:11:00+08:00
description: ## 1. ffmpeg下载 ffmpeg是一个开源软件，可以在官方平台下载。可以下载源码到具体平台编译，也可以直接下载某平台已编译好的软件。 http://ffmpeg.org/download.html ffmpeg的使用资料也在官网下载。文档是html格式的英文文档，可以使用谷歌打开，打开时谷歌翻译，拿来做参考还可以。 ####ffmpeg centos yum安装 ``` yum -y install ffmpeg ``` 如果找不到这个包，可以安装对应的yum源 centos 7 ``` rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm ``` centos 6 ``` rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm ``` 然后再安装即可。 ## 2. ffmpeg软件组件 ffmpeg下载下来之后有三个组件。 2.1 ffmpeg 媒体处理工具 2.2 ffplay 媒体播放器（ffplay 123.mp4即可播放一个媒体文件） 2.3 ffprobe 媒体流分析器（ffprobe 123.mp4即可分析该文件的详细属性） 我们使用的主要是ffmpeg来处理视频源以获得我们想要的视频格式和类型。 ##3. ffmpeg转码过程 ![](https://blog.ww4k.com/usr/uploads/2022/07/1041473009.png) ##4. ffmpeg语法简介 ffmpeg使用的语法格式如下： ffmpeg [global_options] {[input_file_options] -i ' INPUT_FILE'} ... {[output_file_options]' OUTPUT_FILE'} ... 使用ffmpeg –h等命令可以查看ffmpeg语法帮助。 从ffmpeg的帮助信息来看，ffmpeg有6个命令模块。 4.1 打印信息（帮助/信息/能力值） 4.2 全局参数(影响整个程序，而不是单个文件) 4.3 每文件主要参数（文件的时间戳/元数据/帧数等信息） 4.4 视频参数（视频的录制帧数/像素长款比/视频调控/采样率等） 4.5 音频参数（音频的录制帧数/音频通道/采样率/过滤器等） 4.6 字幕参数（设置字幕帧数/开关字幕/固定字幕长度/预置字幕等） 详细的解读可以读帮助文档，也可以在linux系统下使用man ffmpeg看到更多的帮助信息。 ##5. ffmpeg常用命令杂记 5.1 视频格式转换 ffmpeg将视频转换为FLV格式： ffmpeg.exe -i test.mp4 -ab 30 -ar 20000 -b 128K -r 25 -s 1920x1080 D: est.flv ffmpeg将视频转换为3GP格式： ffmpeg -i test.mp4 -y -b 30 -s sqcif -r 10 -acodec amr_wb -ab 24 -ac 1 -ar 20000 test.3gp 转码解密的VOB： ffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800 -g 300 -bf 2 -acodec mp3 -ab 128 snatch.avi 上面的命令行将vob的文件转化成avi文件，mpeg4的视频和mp3的音频。注意命令中使用了B帧，所以mpeg4流是divx5兼容的。GOP大小是300意味着29.97帧频下每10秒就有INTRA帧。该映射在音频语言的DVD转码时候尤其有用。 同时编码到几种格式并且在输入流和输出流之间建立映射： ffmpeg -i /tmp/a.wav -ab 64 /tmp/a.mp2 -ab 128 /tmp/b.mp2 -map 0:0 -map 0:0 上面的命令行转换一个64Kbits 的a.wav到128kbits的a.mp2 ‘-map file:index’在输出流的顺序上定义了哪一路输入流是用于每一个输出流的。 5.2 视频中的图片操作 添加水印： ffmpeg -i test.mp4 -i watermark.png -fi…