logo头像

技术是一种信念

FFMPEG简介

功能说明

Fmpeg是用于录制、转换和流化音频和视频的完整解决方案, 包括 libavcodec ,一套领先的音/视频编解码类库。FFmpeg 在Linux上开发,当可以在大多数操作系统下编译,包括Windows。

Note

  • FFmpeg对GCC的依赖很强,所以就算是在Windows上, 用VC编译FFmpeg也不是一件轻松的事情。请尽量使用 GCC来编译FFmpeg,比较事半功倍。

包组成结构

FFmpeg主要由一下几个部分组成:

  • libavcodec:一个包含了所有FFmpeg音视频编解码器的库。为了保证最优性能和高可复用性,大多数编解码器从头开发的。

  • libavformat: 一个包含了所有的普通音视格式的解析器和 产生器的库。

    • 三个实例程序,这三个实例较为复杂,基本可以作为API使用手册:

      ffmpeg:命令行的视频格式转换程序。ffplay:视频播放程序。(需要SDL支持)ffserver:多媒体服务器

下载使用

下载地址

官网地址:http://ffmpeg.org/

git地址: https://github.com/FFmpeg/FFmpeg

ffmpeg命令

参数介绍

基本格式
-formats 输出所有可用格式
-f fmt 指定格式(音频或视频格式)
-i filename 指定输入文件名,在linux下当然也能指定:0.0(屏幕录制)或摄像头
-y 覆盖已有文件
-t duration 记录时长为t
-fs limit_size 设置文件大小上限
-ss time_off 从指定的时间(s)开始, [-]hh:mm:ss[.xxx]的格式也支持
-itsoffset time_off 设置时间偏移(s),该选项影响所有后面的输入文件。该偏移被加到输入文件的时戳,定义一个正偏移意味着相应的流被延迟了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支持
-title string 标题
-timestamp time 时间戳
-author string 作者
-copyright string 版权信息
-comment string 评论
-album string album名
-v verbose 与log相关的
-target type 设置目标文件类型(“vcd”, “svcd”, “dvd”, “dv”, “dv50”, “pal-vcd”, “ntsc-svcd”, …)
-dframes number 设置要记录的帧数

常用命令

音频转换

ffmpeg -i my_audio.wav  my_audio.mp3

视频转换

ffmpeg -i my_video.mpeg -s 500×500 my_video.flv

从视频中截取图片

分离视频音频流

ffmpeg -i input_file -vcodec copy -an output_file_video  //分离视频流
ffmpeg -i input_file -acodec copy -vn output_file_audio  //分离音频流

视频解复用

ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264``ffmpeg –i test.avi –vcodec copy –an –f m4v test.264

视频转码

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            //转码为封装文件//-bf B帧数目控制,-g 关键帧间隔控制,-s 分辨率控制

视频封装

ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file

视频剪切

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    //剪切视频//-r 提取图像的频率,-ss 开始时间,-t 持续时间

视频录制

ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi

常见错误

相关文章

1.ffmpeg常用参数一览表