美文网首页FFmpeg实践记录
FFmpeg实践记录二:FFmpeg常用命令

FFmpeg实践记录二:FFmpeg常用命令

作者: MxlZlh | 来源:发表于2021-04-30 16:46 被阅读0次

    FFmpeg处理流程

    FFmpeg处理流程
    上面这张图非常重要请牢牢记住

    FFmpeg命令分类

    FFmpeg命令分类

    一:基本信息查询命令

    基本信息查询命令

    二:录制命令

    录制视频

    //设备索引号可能需要变动
    ffmpeg -f avfoundation -i 1 -r 30 out.yuv
    

    -f:指定使用 avfoundation采集数据
    -i:指定从哪里采集数据,它是一个文件索引号
    -r:指定帧率(30表示每秒30帧)

    查询设备索引号

    ffmpeg -f avfoundation -list_devices true -i “”
    
    设备索引号

    播放

    ffplay -s 2560x1440 -pix_fmt uyvy422 out.yuv
    

    录制音频

    ffmpeg -f avfoundation -i :0 out.wav
    

    :0 代表音频设备(冒号之前表示视频设备索引号,之后表示音频设备索引号)

    三:分解与复用命令

    1、多媒体文件格式的转换,比如 mov文件转成mp4文件 mp4文件转成flv文件 等等。
    2、将一个多媒体文件中的视频、音频单独抽取出来(未解码的H264、AAC等)。

    分解与复用

    多媒体文件格式转换

    //mp4转flv
    ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv
    

    -i:输入文件
    -vcodec copy:视频编码处理方式
    -acodec copy:音频编码处理方式

    抽取视频

    ffmpeg -i input.mov -an -vcodec copy out.h264
    

    这里的h264编码格式要和原视频一致

    抽取音频

    ffmpeg -i input.mov -acodec copy -vn out.aac
    

    这里的aac编码格式要和原音频一致

    四:处理原始数据命令

    音频原始数据 pcm
    视频原始数据 yuv

    提出YUV数据

    ffmpeg -i input.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv
    

    提取PCM数据

    ffmpeg -i input.mp4 -vn -ar 44100 -aac 2 -f s16le out.pcm
    

    五:滤镜命令

    滤镜都是对解码后的数据帧进行的处理


    FFmpeg滤镜

    剪切

    ffmpeg -i in.mov -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy out.mp4
    

    -vf 表示对视频滤镜
    crop=in_w-200:in_h-200 crop具体的滤镜名字 in_w in_h视频的原宽高(也可以写 crop=out_w:out_h:x:y)
    -c:v 表示视频编码器
    -c:a 表示音频编码器

    六:裁剪与合并命令

    ffmpeg -i in.mp4 -ss 00:00:00 -t 10 out.ts
    

    -ss 表示开始裁剪时间
    -t 表示时长

    ffmpeg -f concat -i inputs.txt out.flv
    

    -f concat 表示合并
    -i inputs.txt 表示需要合并的视频文件列表,内容为‘file filename’ 格式。


    内容格式

    七:图片与视频互转命令

    视频转图片

    ffmpeg -i in.flv -r 1 -f image2 image-%3d.jpeg
    

    -r 表示转换图片的帧率(1代表每秒转出1张图片)
    -f 表示转换的格式

    图片转视频

    ffmpeg -i image-%3d.jpeg out.mp4
    

    八:直播相关命令

    推流

    ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName
    

    -re 降低帧率,与真实的帧率保持同步
    -i 需要推出的文件
    -c 音视频编解码
    -f 推出的文件格式

    拉流

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

    相关文章

      网友评论

        本文标题:FFmpeg实践记录二:FFmpeg常用命令

        本文链接:https://www.haomeiwen.com/subject/nxgnrltx.html