其他分享
首页 > 其他分享> > ffmpeg 格式转换

ffmpeg 格式转换

作者:互联网

1.学前知识

1.1视频码率值

码率公式: 码率(kbps)=文件大小(KB)*8/时间(秒)

所以码率和视频文件大小成正比的,不过码率超过一定值后,人眼是看不出效果的.

接下来,我们便先来学习ffmpeg命令使用

2.ffmpeg常用命令使用

ffmpeg命令- 用于转码的应用程序, 也可以从url/现场音频/视频源抓取输入源

参考:http://ffmpeg.org/ffmpeg.html

常用参数使用

主要参数

视频参数

音频参数

示例命令如下所示:

ffmpeg –h //打开帮助

ffmpeg -i input.avi -b:v 640k output.ts          //转换为ts视频文件

ffmpeg -i test.mp4 -f s16le out.pcm         //提取原始音频数据,s16le表示(signed 16 bits little endian, 有符号 16 位小端)

ffmpeg -i v1080.mp4 -t 10 -s 240x128 -pix_fmt yuv420p out240x128.yuv   //提取yuv420p数据,时长10s

ffmpeg -i test.mp4 -vn music.aac                   //提取出音频文件

ffmpeg -i test.mp4 -vn music.aac                   //提取出音频文件

ffmpeg -i input.mp4 -vcodec copy -an output.mp4  //输出的视频取消掉音频流
//-i input.avi:表示输入文件为input.avi
//-b:v 640k:设置输出的视频文件码率值
// output.ts:生成的文件名称

ffmpeg -i C.mkv out1.mkv -c:s dvdsub -an out2.mkv
//-an:取消output.ts视频文件的音频流

./ffmpeg -i input.mp4 -i iQIYI_logo.png -filter_complex overlay output.mp4 
//将logo贴在左上角

 ./ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=W-w:H-h output.mp4
//贴在右下角

 ./ffmpeg -i input.mp4 -i logo.png -filter_complex overlay0:H-h output.mp4
//贴在左下角, overlay W-w:0 贴在右上角

 

ffmpeg -i input.mp4 -vf delogo=0:0:220:90:100:1 output.mp4 
//添加过滤器,位置位于[0,0],w=220,h=90,厚度为100(厚度越大,越模糊).1:表示有一个绿色的矩形,设置为0就表示没有
 

ffmpeg -i input.mp4 -r 1 -q:v 2 -f image2 pic-%03d.jpeg
// -r :设置帧数为1, -q:v:设置jpeg图片质量为高质量(2),所以每隔一秒,存一张图片下来

ffmpeg -i input.mp4 -ss 00:00:20 -t 10 -r 1 -q:v 2 -f image2 pic-%03d.jpeg 
// - ss :设置开始时间,-t:设置time时间长度, -f 设定输出格式 , 所以会从input.mp4的第20s时间开始,往下10s,每隔1s就抓一帧,总共会抓10帧。

ffmpeg -i  input.mkv -y -f image2 -ss 10 -r 1 -t 1 –s 350x220 a.jpg
//截取一张第10秒的352x220尺寸大小的,格式为jpg的a.jpg图片

ffplay常用命令使用

ffplay命令- FFplay是一个非常简单和可移植的媒体播放器,使用FFmpeg库和SDL库。它主要用作各种FFmpeg API的测试平台

参考: http://ffmpeg.org/ffplay.html

最简单的播放命令: ffplay input.avi

播放的时候,支持的快捷键有:

ffprobe常用命令使用

ffprobe命令- ffprobe用来查看多媒体文件的信息

常用命令如下所示:

ffprobe -show_packets input.mp4
//获取文件信息并显示文件中每个帧的包信息(包含audio和video包),如下图所示:

ffprobe -show_packets  -show_data input.mp4
//获取文件信息并显示文件中每个帧的包信息以及包里的具体data信息

ffprobe -show_format input.mkv
//获取文件信息以及格式信息,如下图所示:

ffprobe -show_streams input.mkv
//获取视频文件中流的具体信息,比如音频采样率、视频尺寸、帧率等

5.视频解码步骤

首先将读取视频封装,然后通过不同的封装格式读取出视频码流(比如:h.264、mpeg4等),然后再通过视频码流解码出yuv

比如mkv视频: mkv->h.264->yuv

参考:

1.ffmpeg、ffplay、ffprobe命令使用 - 诺谦 - 博客园 (cnblogs.com)

官方帮助文件 doc.zip 提取码:FvkC

标签:视频,设定,转换,ffmpeg,码率,mp4,input,格式
来源: https://www.cnblogs.com/xs-xs/p/16329135.html