• ffmpeg常用命令


    截取视频生成gif缩略图:

    ffmpeg -i test.avi -ss 1 -t 5 -ac 2 -ab 128k -s 90*80 -y -f gif out.gif

    截取视频生成jpg缩略图:

    ffmpeg -i test.avi -ss 0.5 -vframes 1 -r 1 -ac 2 -ab 128k  -s 90x80 -y -f mjpeg out2.jpg
    • -ss:截取视频,开始时间,单位秒;
    • -t:截取时长,单位秒;
    • -vframes:等价于frames:v,输出选项,用于指定输出的视频帧数;
    • -r:帧率,输入和输出均具有该参数,即具体形式为:

             ffmpeg -r [输入帧率] -i [输入文件路径] -r [输出帧率] [输出文件路径] 
            # 输出视频时长= 图片数量/输入帧率
            # 当输入文件为视频时,输入帧率自动识别。
            # 当输入文件为图片时,输入帧率默认为25,可指定具体值。

    • -ac:输出文件中音频的声道数;
    • -ab:输出文件中音频的比特率(常见的音频比特率有 96k, 112k, 128k, 160k, 192k, 256k, 320k);
    • -ar:输出文件中音频的采样率(采样率: 11025Hz、22050Hz、24000Hz、44100Hz、48000Hz);
    • -an:从视频文件中去除音频,即视频静音,如:

            ffmpeg -i test.mp4 -vcodec copy -an output.mp4
            # -vcodec copy拷贝源数据的视频流到输出文件里面

    • -vn:从视频文件中去除视频,即提取音频,如:

            ffmpeg -i test.mp4 -acodec copy -vn output.aac
            # 默认mp4的audio codec是aac,如果不是,可以都转为最常见的aac;
            # -acodec copy拷贝源数据的音频流到输出文件里面

    • -s:设置视频分辨率,参数值wxh,w宽度单位是像素,h高度单位是像素;
    • -vf:等价于filter:v,用于设定一个图像的后处理过滤链,其参数为一个描述图像后处理链的字符串。

            # 下面两条命令有相同效果

    1.     ffmpeg -i input.mpg -s 320x240 output.mp4 
    2.     ffmpeg -i input.mpg -vf scale=320:240 output.mp4

            # 对输入视频成比例缩放

    1. # 改变为源视频一半大小:
    2.     ffmpeg -i input.mpg -vf scale=iw/2:ih/2 output.mp4
    3. # 改变为原视频的90%大小:
    4.     ffmpeg -i input.mpg -vf scale=iw*0.9:ih*0.9 output.mp4

            # 保持源视频的横纵比

    1. # 宽度固定400,高度成比例:
    2.     ffmpeg -i input.avi -vf scale=400:-1
    3. # 相反地,高度固定300,宽度成比例:
    4.     ffmpeg -i input.avi -vf scale=-1:300
    • -b:v:输出视频的码率即比特率,比特率越大,视频文件越大,和分辨率成正相关。

            # 常见分辨率和推荐的比特率值:
            分辨率        比特率
            480p        1500 Kbps左右
            720p        3000-5000 Kbps
            1080p        5000-8000 Kbps
            4K        18000-30000 Kbps

    • -map:指定输出文件的流映射关系。例如 “-map 1:0 -map 1:1”要求将第二个输入文件的第一个流和第二个流写入到输出文件。如果没有-map选项,ffmpeg采用缺省的映射关系。
    • -y:存在重名文件时覆盖;
    • -f:输入、输出文件的格式,小写字母,如:
    1. ffmpeg -f mp4 test.mp4 -f avi out.avi
    2. # 不确定格式名称时,可以直接使用文件扩展名。

  • 相关阅读:
    C++map容器
    通信原理 | 傅里叶变换(先立个贴在这,还没写好)
    java计算机毕业设计高校图书馆管理网站源码+mysql数据库+系统+lw文档+部署
    人人开源前后端分离开源项目启动流程(超详细)
    VR直播系统设置大揭秘,带你穿越时空亲临现场
    前端 Javascript 编程中的闭包知识点有哪些?
    Flutter高仿微信-第28篇-好友详情-查看个人头像
    漆包线工厂云MES解决方案
    cookie、localStorage 和SessionStorage的区别和特点?
    asp.net生产线远程故障诊断系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
  • 原文地址:https://blog.csdn.net/yinshengchen/article/details/133089702