FFmpeg 命令入门

怼烎@ 2023-07-09 07:28 116阅读 0赞

文章目录

  • FFmpeg 命令格式
  • 处理原始数据
    • 提取YUM数据
    • YUV转H264
    • 提取PCM数据
    • PCM转WAV
  • 视频/图片 互转
    • 视频-> 图片
    • 图片 -> 视频
  • 音频裁剪与合并
    • 裁剪
    • 合并
  • 直播 推/拉流
    • 推流
    • 拉流
    • 拉流

FFmpeg 命令格式

  1. ffmpeg \
  2. [global_options] \
  3. [input_file_options] -i input_file \
  4. [output_file_options] output_file
  • global_options:全局参数
  • input_file_options: 输入文件相关参数
  • output_file_options:输出文件相关参数
  • -i input_file 输入文件
  • output_file 输出文件

处理原始数据

提取YUM数据

  1. ffmpeg -i input.mp4 -an -c:v rawvideo -pixel_format yuv420p out.yuv
  2. ffplay -s wxh out.yuv
  • -an a代表audio n代表no 表示输出结果中不包含音频
  • -c:v rawvideo 指定将视频转成原始数据
  • -pixel_format yuv420p 像素格式 指定转换格式为 yuv420p
  • ffplay 播放命令 因为是原始数据 需要我们告诉播放参数
  • -s 638x358 分辨率

YUV转H264

  1. ffmpeg -f rawvideo -pix_fmt yuv420p -s 320x240 -r 30 -i out.yuv -c:v libx264 -f rawvideo out.h264

提取PCM数据

  1. ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
  2. ffplay -ar 44100 -ac 2 -f s16le -i out.pcm
  • -vn 不要视频
  • -ar 采样率 44100 ; 其他常见的有 48K 32K 16K
  • -ac 2 双声道; 1/2/3 单声道/双声道/立体声 等等
  • -f 抽取出音频数据pcm存储格式 s16le
  • ffplay 要告诉它参数,不然原始数据 是不能解析出来的

PCM转WAV

  1. ffmpeg -f s16be -ar 8000 -ac 2 -acodec pcm_s16be -i input.raw output.wav

视频/图片 互转

视频-> 图片

  1. ffmpeg -i test.flv -r 1 -f image2 image-%3d.jpeg
  • -r 指定帧率为 1,每秒钟转出1张图片
  • -f image2 转为image2协议格式
  • image-%3d.jpeg , %3d 三位数的数字,如001 002

图片 -> 视频

  1. ffmpeg -f image2 -i image-%3d.jpeg images.mp4

音频裁剪与合并

裁剪

  1. ffmpeg -i out.mp4 -ss 00:00:00 -t 10 out1.mp4
  • -ss 指定裁剪的开始时间,精确到秒
  • -t 被裁剪后的时长

合并

  1. # 创建一个 inputs.txt 文件
  2. file '1.flv'
  3. file '2.flv'
  4. file '3.flv'
  5. # 进行合并
  6. ffmpeg -f concat -i inputs.txt -c copy output.flv
  • -f concat 输入文件的格式 对后面的文件进行拼接
  • -i 输入文件 inputs.txt 内容的格式如代码展示

直播 推/拉流

推流

  1. ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName
  • -re 减慢帧率速度,让帧率与视频真正的帧率保持同步
  • -c 表示音视频编解码, 专门指定音频-a,视频-v
  • copy 音视频参数不变

拉流

  1. ffmpeg -i rtmp://server/live/streamName -c copy dump.flv

  • -c 表示音视频编解码, 专门指定音频-a,视频-v
  • copy 音视频参数不变

拉流

  1. ffmpeg -i rtmp://server/live/streamName -c copy dump.flv

发表评论

表情:
评论列表 (有 0 条评论,116人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ffmpeg入门(三)

    本篇介绍的就是ffmpeg的常用指令: 前面我们讲了从官方下载了Dev包和Shared包,我们可以看到Shared包中有几个exe程序。 本章我们来讲解下这几个e

    相关 ffmpeg 入门(一)

    1。个人背景:一个在公司一直跟视频流打交道的工程师,但是不负责解码,我主要负责的软件就是将第三方非标准,标准的码流从第三方相机,平台,dvr,nvr等中获取到对应的码流,进行分