• ffmpeg 图片合成视频


    静默输出

    -y 将所有需要确认的操作默认为yes

    -framerate 或 -r , 为帧率,默认25

    -i “D:/Temp/img.%04d.png” 为输入图片的命名格式
    在这里插入图片描述
    -c:v 为视频编码格式, libx264表示使用H.264, 这种格式文件体积较小
    H.264又有四种画质等级,baseline, extended, main, high
    使用 -level 指定,1.0 、 2.0 、 3.0 或 4.0

    -vf 为视频过滤器video filter,其中scale为resolution,-2表示保持原有比例,输入图片是720x540的,输出后视频的默认尺寸放大了,变为960x(540*960/720)

    –preset的参数主要调节编码速度和质量的平衡,有ultrafast(转码速度最快,视频往往也最模糊)、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo这10个选项,从快到慢。

    -crf:v 为视频质量参数 constant rate factor,0-51,0为无损,51为最糟画质,默认23

    -pix_fmt 为像素模式pixel format,最常用格式为yuv420p, 其它yuv444p, rgb555le等

    ffmpeg  -y -framerate 24.0 -i "D:/Temp/img/img.%04d.png" -c:v libx264 -crf 30 -preset:v ultrafast -pix_fmt yuv420p  -vf "scale=960:-2" "D:/Temp/output.mov"
    
    • 1

    添加音频

    -c:a 为音频编码器Codec Audio,-c:a aac

    ffmpeg -r 24 -i "D:/Temp/img/img.%04d.png" -i "D:/Temp/sound.wav" -c:v libx264 -c:a aac "D:/Temp/output.mov"
    
    • 1

    -ar 为音频采样率 audio sample rate

    ffmpeg -r 24 -i "D:/Temp/img/img.%04d.png" -i "D:/Temp/sound.wav" -c:v libx264 -c:a aac -ar 48000 "D:/Temp/output.mov"
    
    • 1

    -b:a 为音频的比特率,越高传送的数据越大,声音越清晰,音质越好

    ffmpeg -r 24 -i "D:/Temp/img/img.%04d.png" -i "D:/Temp/sound.wav" -c:v libx264 -c:a aac -ar 48000 -b:a 64k "D:/Temp/output.mov"
    
    • 1

    -shortest , 输出视频的时长取输入音、画中最短的时长

    ffmpeg -r 24 -i "D:/Temp/img/img.%04d.png" -i "D:/Temp/sound.wav" -c:v libx264 -shortest "D:/Temp/output.mov"
    
    • 1

    -filter_complex “[1:0] apad” 当音频较短时,在后面补上静默音,需要配合-shortest使用

    ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0] apad" -shortest OUTPUT
    
    • 1

    什么是Codec

    codec是一种标准的压缩方式,用于数据的编码和解码

    比如mp4文件,会使用aac编码音频audio stream,用h264来编码视频video stream

    常用音频编码格式包括: aac , mp3, vorbis

    常用视频编码格式包括:H.264, MPEG-2,VP9

    什么是Container

    一个container就是一种文件格式

    保存1或更多的编码后的流stream, 包括 audio,video ,data
    包含关于这些流自身的信息

    常用的container格式: mp4, mov, avi

  • 相关阅读:
    在Linux中搭建Python环境
    【用Mapper替代DBUtils实现商品管理系统】
    Shell各种排序方式
    如何根据自己的SCI论文,匹配适合的期刊? - 易智编译EaseEditing
    rust 逐行读取文本文件
    python/pygame 挑战魂斗罗 笔记(三)
    第二章 爬虫的实现原理和技术(一)
    跨时钟域问题(一)(建立时间保持时间和亚稳态)
    ByteHouse MaterializedMySQL 增强优化
    Android开发-Android项目Jenkins自动化打包流程搭建与配置
  • 原文地址:https://blog.csdn.net/Ezerbel/article/details/126859472