zoukankan      html  css  js  c++  java
  • 关于FFmpeg工具的使用总结

    FFmpeg官网:http://ffmpeg.org/

    安装ffmpeg:

    主要参数:
    -i 设定输入流
    -f 设定输出格式
    -ss 开始时间
     
    视频参数:
    -b 设定视频流量,默认为200Kbit/s
    -r 设定帧速率,默认为25
    -s 设定画面的宽与高
    -aspect 设定画面的比例
    -vn 不处理视频
    -vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器
     
    音频参数:
    -ar 设定采样率
    -ac 设定声音的Channel数
    -acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器
    -an 不处理音频

     
    拓展:
    -strict -2 之前是实验参数表示 aac音频编码 如果不使用aac音频编码使用使其的编码好像还需要导入第三方的音频编码库 比较麻烦 使用FFmpeg自带的aac音频编码要带上-strict -2 参数就可以了。带这个参数是为了使用aac音频编码。
    -sameq 指相同的量级数,常被误用成“相同的画质”,所以被取消。官方推荐用-qscale和-qmax替代 ffmpeg不支持libfaac库,faac库音质也一般。 另支持2套AAC音频编码, -acodec aac 是ffmpeg自制的AAC编码器,处在实验阶段,需要开启"-strict experimental"参数,音质也不差。 -acodec libvo_aacenc 是移植自安卓系统的AAC编码器,比较成熟。

    • m4a转wav
    $ ffmpeg.exe -i input.m4a -ac 2 -ar 44100 -acodec pcm_s16le -f wav output.wav
    • 从视频中提取声音
    $ ffmpeg -i [input].mp4 -vn -ab 128k [output].mp3
    • 分离视频音频流
    //分离视频流
    $ ffmpeg -i input_file -vcodec copy -an output_file_video
    //分离音频流
    $ ffmpeg -i input_file -acodec copy -vn output_file_audio
    • 去掉视频里的声音(静音)
    $ ffmpeg -i [input].mp4 -an [output].mp4
    • 改变视频文件大小(分辨率)
    $ ffmpeg -i [input].mp4 -s 640x480 -c:a copy [output].mp4
    • 截取一段音频
    //-ss:截取开始时间点, -t:要截取的视频长度(15秒)
    $ ffmpeg -ss 00:00:15 -t 45 -i sampleaudio.mp3 croppedaudio.mp3
    $ ffmpeg -i [input].mp4 -ss 00:00:00 -codec copy -t 15 [output].mp4
    • 视频剪切
    //-r 提取图像的频率,-ss 开始时间,-t 持续时间
    $ ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg        //提取图片
    $ ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi    //剪切视频
    • 把一个视频分成多个部分
    //0-59秒一部分,59秒以后一部分
    $ ffmpeg -i input.mp4 -t 00:00:59 -c copy part1.mp4 -ss 00:00:59 -codec copy part2.mp4
    • 查看ffmpeg支持的视频格式
    $ ffmpeg -formats
    • mp4到wmv格式转换
    $ ffmpeg -i input.mp4 -c:v libx264 output.wmv
    • webm转为mp4
    $ ffmpeg -i input.webm -qscale 0 output.mp4
    • 视频文件名写入txt
    $ ffmpeg -i input.webm -qscale 0 output.mp4
    • 对音频加减速
    $ ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv
    • 对视频加减速
    $ ffmpeg -i input.mp4 -filter:v "setpts=0.125*PTS" output.mp4
    •  旋转视频
    $ ffmpeg -i input.mp4 -filter:v 'transpose=1' rotated-video.mp4
    $ ffmpeg -i input.mp4 -filter:v 'transpose=2,transpose=2' rotated-video.mp4
    • 改变声音大小
    $ ffmpeg -i input.wav -af 'volume=0.5' output.wav
    • 加入字幕
    $ ffmpeg -i movie.mp4 -i subtitles.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mkv
    • 把单独的一个图片转为视频
    $ ffmpeg -loop 1 -i image.png -c:v libx264 -t 30 -pix_fmt yuv420p video.mp4
    • 把视频文件转为图片
    $ ffmpeg -i movie.mp4 -r 0.25 frames_%04d.png
    • 视频中提取帧
    $ ffmpeg -ss 00:00:15 -i video.mp4 -vf scale=800:-1 -vframes 1 image.jpg
    • 把视频转为GIF动态图
    $ ffmpeg -i video.mp4 -vf scale=500:-1 -t 10 -r 10 image.gif
    • 左右声道的录音合成为立体声
    $ ffmpeg -i 1.wav -i 2.wav -filter_complex "amovie=1.wav [l]; amovie=2.wav [r]; [l] [r] amerge" 1_2.mp3
    • 从视频里截图
    $ ffmpeg -i test.avi -y -f image2 -ss 8 -t 0.001 -s 350x240 test.jpg
    • 音视频文件的切割
    $ ffmpeg -ss 00:00:10 -t 00:01:22 -i input.mp3 output.mp3
    • 视频解复用
    $ ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264
    $ ffmpeg –i test.avi –vcodec copy –an –f m4v test.264
    • 视频转码
    //-bf B帧数目控制,-g 关键帧间隔控制,-s 分辨率控制
    
    //转码为码流原始文件
    $ ffmpeg –i test.mp4 –vcodec h264 –s 352*278 –an –f m4v test.264              
    //转码为码流原始文件
    $ ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264
    //转码为封装文件
    $ ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi
    • 视频封装
    $ ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file

     
     
  • 相关阅读:
    关于域名备案申请
    meta标签中的http-equiv属性使用介绍
    WDCP3.3中多PHP版本安装方法,以及安装遇到的问题
    模拟《意尔康》网站加载动画效果
    如何提示系统所在的浏览器版本过低?
    Dedecms升级php版本{dede:field.body/}不解析,文章内容不显示
    微信weixin://xxx 分析
    SuperSlide之属性targetCell介绍
    了解JSON Web令牌(JWT)
    如何向这些CA来申请数字证书呢?
  • 原文地址:https://www.cnblogs.com/runchen0518/p/7895948.html
Copyright © 2011-2022 走看看