FFmpeg命令行的使用(二)

FFmpeg常用命令:

  • 列出ffmpeg支持的所有格式:
    ffmpeg -formats

    ffmpeg -formats

  • 截取一段视频
    ffmpeg -i input.mp4 -ss 10 -codec copy -t 10 output.mp4
    将文件中第10s 剪切10秒的时间,输出到output.mp4中,其中-ss指定偏移时间(可以用秒的格式,也可以用00:00:10.0的格式),-t指定的时长

    ffmpeg -i input.mp4 -ss 10 -codec copy -t 10 output.mp4

  • 提取视频文件中的音频文件

ffmpeg -i input.mp4 -vn -acodec copy output.m4a
-vn:取消视频输出
-acodec codec:指定音频编码(‘copy’代表不做音频转码,直接复制)


ffmpeg -i input.mp4 -vn -acodec copy output.m4a
  • 提取视频文件中视频(不保留音频)
    ffmpeg -i input.mp4 -an -vcodec copy output_no_audio.mp4
    -an取消音频输出
    -vcodec codec:指定视频编码(‘copy’代表不做视频转码,直接复制)
    ffmpeg -i input.mp4 -an -vcodec copy output_no_audio.mp4
  • 从文件中提取视频导出为裸h264数据
    ffmpeg -i output.mp4 -an -vcodec copy -bsf:v h264_mp4toannexb output.h264
    -bsf:v h264_mp4toannexb视频数据使用h264_mp4toannexb这个bitstream filter来转换为原始的h264数据
ffmpeg -i output.mp4 -an -vcodec copy -bsf:v h264_mp4toannexb output.h264
  • 提取视频中的音频并转换为aac封装格式
    ffmpeg -i input.mp4 -vn -acodec aac output.aac
    注:查看是否有aac编码器可以使用命令:
    ffmpeg -h encoder=aac
ffmpeg -i input.mp4 -vn -acodec aac output.aac

下面就不截图了

  • 音频数据和视频数据封装程视频文件
    ffmpeg -i output.aac -i output.h264 -acodec copy -bsf:a aac_adtstoasc -vcodec copy -f mp4 merge.mp4

  • 从wav音频文件中提取pcm裸数据
    ffmpeg -i input.wav -f s16le output.pcm

  • pcm裸数据封装程wav
    wav和pcm的区别就是 pcm是一段纯音频数据 未经压缩 而wav就是给pcm 加上一个文件头 其中描述该段音频的采样率 声道数等信息

ffmpeg -ar 44100 -f s16le -i output.pcm output.wav


  • 视频转换成gif格式

ffmpeg -i input.mp4 -vf scale=300:-1 -t 5 -r 10 image.gif

-vf VideoFilter 使用VideoFilter的scaleFilter
-r 帧率改为10,
-t 只处理前5秒钟的视频

  • 从视频中抽取图片

ffmpeg -i output.mp4 -r 0.25 frames_%04d.png
每4秒钟截取一帧视频画面生成图片

  • 多张图片生成gif

ffmpeg -i frames_%04d.png -r 5 output.gif

  • 降低音量为原来的一半

ffmpeg -i output.wav -af volume=0.5 low_volume.wav

  • 淡入效果器的使用

ffmpeg -i output.wav -filter_complex afade=t=in:ss=0:d=5 gradient.wav

前5s做淡入效果

  • 淡出效果器的使用

ffmpeg -i output.wav -filter_complex afade=t=out:st=20:d=5 gradient_out.wav

从20s开始,做5s的淡出效果

  • 对声音进行变速但不变调效果器的使用

ffmpeg -i output.wav -filter_complex atempo=0.5 change_speed.wav
语速变为原来的0.5倍

你可能感兴趣的:(FFmpeg命令行的使用(二))