我是靠谱客的博主 简单小虾米,最近开发中收集的这篇文章主要介绍FFmpeg 命令入门FFmpeg 命令格式处理原始数据视频/图片 互转音频裁剪与合并直播 推/拉流,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

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

FFmpeg 命令格式

ffmpeg                                   
[global_options]                         
[input_file_options]  -i input_file      
[output_file_options]   output_file
  • global_options:全局参数
  • input_file_options: 输入文件相关参数
  • output_file_options:输出文件相关参数
  • -i input_file 输入文件
  • output_file 输出文件

处理原始数据

提取YUM数据

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

YUV转H264

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

提取PCM数据

ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
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

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

视频/图片 互转

视频-> 图片

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

图片 -> 视频

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

音频裁剪与合并

裁剪

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

合并

# 创建一个 inputs.txt 文件
file '1.flv'
file '2.flv'
file '3.flv'

# 进行合并
ffmpeg -f concat -i inputs.txt -c copy output.flv
  • -f concat 输入文件的格式 对后面的文件进行拼接
  • -i 输入文件 inputs.txt 内容的格式如代码展示

直播 推/拉流

推流

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

拉流

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

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

拉流

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

最后

以上就是简单小虾米为你收集整理的FFmpeg 命令入门FFmpeg 命令格式处理原始数据视频/图片 互转音频裁剪与合并直播 推/拉流的全部内容,希望文章能够帮你解决FFmpeg 命令入门FFmpeg 命令格式处理原始数据视频/图片 互转音频裁剪与合并直播 推/拉流所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部