FFmpeg 简单指令介绍

2020-07-27  本文已影响0人  毛先森

简介

FFmpeg 最早是由法国著名程序员
法布里斯·贝拉于 2000 年开发,FFmpeg 是音视频的一个工具宝库,集成了播放,视频裁剪等功能

安装程序

在 Ubuntu 虚拟机中使用 apt 安装 FFmpeg 程序,用于熟悉简单的指令

sudo apt install ffmpeg

ffprobe 查看基础信息

得到 mp3 文件的总时长,开始时间点,比特率,数据流的类型格式

Input #0, mp3, from 'test_format.mp3':
  Metadata:
    encoder         : Lavf57.83.100
  Duration: 00:04:17.25, start: 0.025057, bitrate: 320 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 320 kb/s

ffplay 播放

将出现播放器弹窗,方向键左右跳转 10s 的进度,上下键跳转 1 min 的进度

播放该视频文件的第一路音频流

播放该视频文件的第一路视频流

ffplay 功能强大,上面我们使用它来播放 mp4 封装格式的文件,如果播放 YUV,PCM 等原始数据呢,其实也是可以的,但是我们必须要说明文件格式,声道等必要信息,使得 ffplay 能够正确地处理数据

音画同步

由于音频文件和视频文件会分开渲染,所以音画同步的问题是所有播放器都会遇到的,以前使用播放器看视频遇到过视频画面和声音对不上, 声音过慢的问题,就是出现了音画不同步

目前有三种方案实现音画同步:

  1. 以音频文件的主时间轴为同步源
  2. 以视频文件的主时间轴为同步源
  3. 以外部时钟为同步源

ffplay 也是默认以第一种方式来对齐

ffmpeg 音视频处理

我们使用 ffplay 播放视频,使用 ffprobe 输出文件基本信息,但当我们需要对一个视频文件进行转码或者裁剪等复杂处理时,上面的这两个库就无法实现了

ffmepg -i xxx.mp4 -ss(指定偏移基点) 00:00:00.0 (时间) -codec copy -t 20 (时长:s)  newxxx.mp4

该指令意味着以 xxx.mp4 文件的从时间点 0 为起点,偏移量为 20 s,裁剪生成 newxxx.mp4 文件,“-ss” 指定偏移时间

ffmpeg -i input.mp4 -t 00:00:50 -c copy small-1.mp4 -ss 00:00:50 -codec copy
        small-2.mp4
ffmpeg -i xxx.mp4 -vn -acodec copy xxx.aac

-acodec 音频编码

-vn 使用音频数据

提取时需要了解当前视频的音频格式,输出时不能随意指定音频文件的封装格式

ffmpeg -i xxx.mp4 -an -vcodec copy xxxx.mp4

-an 不使用音频数据

-vcodec 视频编码

ffmpeg 还能够实现推拉流,视频加水印等复杂操作

上一篇 下一篇

猜你喜欢

热点阅读