zoukankan      html  css  js  c++  java
  • FFmpeg常用命令

    前言

    FFmpeg一般使用官方打包好的命令行程序, 也可以使用源码集成到自己的程序中,这种方式要求更高.这篇文章主要收录命令行下的使用方法

    使用方式

    ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...

    ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]

    参数选项:

    先总结一下经常使用的参数

    -an: 去掉音频 
    -vn: 去掉视频 
    -acodec: 设定音频的编码器,未设定时则使用与输入流相同的编解码器。音频解复用在一般后面加copy表示拷贝 
    -vcodec: 设定视频的编码器,未设定时则使用与输入流相同的编解码器,视频解复用一般后面加copy表示拷贝 
    –f: 输出格式(视频转码)
    -bf: B帧数目控制 
    -g: 关键帧间隔控制(视频跳转需要关键帧)
    -s: 设定画面的宽和高,分辨率控制(352*278)
    -i:  设定输入流
    -ss: 指定开始时间(0:0:05)
    -t: 指定持续时间(0:05)
    -b: 设定视频流量,默认是200Kbit/s
    -aspect: 设定画面的比例
    -ar: 设定音频采样率
    -ac: 设定声音的Channel数
    -r: 提取图像频率(用于视频截图)
    -c:v:  输出视频格式
    -c:a:  输出音频格式
    -y:  输出时覆盖输出目录已存在的同名文件
    

    使用方式

    不精确裁剪视频

    # -ss 指定从什么时间开始
    # -t 指定需要截取多长时间
    # -i 指定输入文件
    ffmpeg -ss 00:00:00 -t 00:00:30 -i test.mp4 -vcodec copy -acodec copy output.mp4
    

    精确时间裁剪视频

    1. 全部帧都转换为关键帧, 将所有的帧的编码方式转为帧内编码
    #旧版本
    ffmpeg -i output.mp4 -sameq -intra keyoutput.mp4
     
    #新版本
    ffmpeg -i output.mp4 -strict -2  -qscale 0 -intra keyoutput.mp4
    
    
    1. 再开始裁剪视频
    ffmpeg -ss 00:00:00 -t 00:00:30 -i test.mp4 -vcodec copy -acodec copy output.mp4
    

    合并视频

    //截取从头开始的30s
    ffmpeg -ss 00:00:00 -t 00:00:30 -i keyoutput.mp4 -vcodec copy -acodec copy split.mp4
    //截取从30s开始的30s
    ffmpeg -ss 00:00:30 -t 00:00:30 -i keyoutput.mp4 -vcodec copy -acodec copy split1.mp4
    //进行视频的合并
    ffmpeg -f concat -i list.txt -c copy concat.mp4
    
    #list.txt
    file ./split.mp4
    file ./split1.mp4
    
    

    往流媒体服务器推流

    ##有打印
    ffmpeg -re -i 1.mp4 -vcodec libx264 -acodec aac -f flv rtmp://ip:port/rtmplive/home
     
    ffmpeg -re -stream_loop -1 -loglevel quiet -i 1.flv -vcodec copy -f flv rtmp://ip:port/live/test
    

    修改视频帧率

    // 强制把输出视频文件帧率改为 24 fps:-r 帧率
    ffmpeg -i input.avi -r 24 output.avi   
    

    参考教程

    1. ffmpeg工具参数中文详细解释
    2. 雷霄骅 - [总结]FFMPEG视音频编解码零基础学习方法
  • 相关阅读:
    gym102215题解
    Codeforces6E_Exposition
    Codeforces893F_Subtree Minimum Query
    是男人就过八题A_A String Game
    gym101666题解
    gym102201E_Eat Economically
    gym102346题解
    C++输入函数用法
    迷宫问题(BFS+保存路径) POJ No.3984
    【BFS】迷宫的最短路径问题
  • 原文地址:https://www.cnblogs.com/xuange306/p/13259579.html
Copyright © 2011-2022 走看看