FFmpeg视频合并、转码、提取、压缩等

at 2024.09.02 23:25  ca Linux  pv 152  by 李佳林  

FFmpeg全名是Fast Forward MPEG(Moving Picture Experts Group),为开源的影音多媒体处理框架,Ffmpeg功能强大无比,可以进行影音的解码、编码、编码转换、混合、抽取、串流和滤镜,无论影音格式是从哪个地方出来的,从过去到现在的影音格式它几乎都能够支持。


ffmpeg下载【 Linking 中 Static、Shared、Dev区别】

①Static里面只有3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe,每个exe的体积都很大,相关的Dll已经被编译到exe里面去了。

②Shared里面除了3个应用程序之外,还有一些Dll,比如说avcodec-54.dll之类的。Shared里面的exe体积很小,他们在运行的时候,到相应的Dll中调用功能。

③Dev版本是用于开发的,里面包含了库文件xxx.lib以及头文xxx.h,这个版本不包含exe文件

ffmpeg安装

下载完成后直接进行解压,然后配置环境变量就OK了,非常方便。

打开命令提示符窗口。输入命令“ffmpeg –version”。如果命令提示窗口返回FFmpeg的版本信息,那么就说明安装成功了。


命令行语法:

ffmpeg [全局参数] [输入文件参数] -i [输入文件] [输出文件参数] [输出文件]

注意:每个部分之间都有英文空格。

 

1、使用ffmpeg将mkv软字幕转换为mp4

转换为mp4格式 使用以下命令将mkv文件转换为mp4格式,并嵌入软字幕:

ffmpeg -i input.mkv -c:v copy -c:a copy -c:s mov_text output.mp4

其中,input.mkv为输入文件名,output.mp4为输出文件名。

 

或者

ffmpeg -i input.mkv -c:v copy -c:a copy -c:s mov_text output.mp4

其中,-c:v copy 表示视频流直接复制

-c:a copy 表示音频流直接复制

-c:s mov_text 表示字幕流以mov_text格式封装

  

2、将mkv软字幕烧录成硬字幕

烧录为硬字幕 使用以下命令将mkv软字幕烧录为mp4硬字幕:

ffmpeg -i input.mkv -vf subtitles=input.mkv output.mp4    

其中,-vf subtitles=input.mkv 表示使用input.mkv中的字幕流作为硬字幕

 

3、将mov转换成mp4

ffmpeg -i input.mov -c:v copy -c:a copy output.mp4

其中,-c:v copy 表示视频流直接复制

-c:a copy 表示音频流直接复制

 

4、视频码率转换

ffmpeg -i input.mp4 -b:v 64k -bufsize 64k output.mp4

其中,-b:v清晰度参数,可以控制视频的码率,码率越高,视频的清晰度也就越高。使用此参数要注意,设置过高会增加视频的文件大小以及视频的传输成本,设置过低则视频会出现模糊、马赛克等现象。-bufsize size 为设置码率控制缓冲区大小。

 

5、视频压缩(音频压缩/视频压缩)

ffmpeg -i input.mp3 -ab 128 output.mp3

ffmpeg -i input.mp4 -c:v libx264 -crf 20 -c:a aac -b:a 192k output.mp4

其中,-i input.mp4 表示输入文件是 MP4 格式的视频。

-c:v libx264 指定使用 H.264 编码来压缩视频。

-crf 20 是CRF (Constant Rate Factor) 的值,范围从 0 到 51,其中 0 是无损压缩,23 是默认设置,18-28 是推荐范围,高 CRF 值会产生更高的压缩比。

-c:a aac 指定使用 AAC 编码来压缩音频。

-b:a 192k 设置音频比特率为 192k。

output.mp4 是压缩后输出的文件名。

 

6、视频录制

录制视频保存在本地磁盘

ffmpeg -f avfoundation -i "1" -vcodec libx264 -preset ultrafast -f h264 -r 30 ~/Downloads/test.h264

录制桌面

ffmpeg -f avfoundation -i "1" -vcodec libx264 -preset ultrafast -acodec libfaac -f flv rtmp://localhost:1935/rtmplive/room

录制桌面和麦克风

ffmpeg -f avfoundation -i "1:0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:1935/live/room

录制桌面和麦克风,并打开摄像头拍摄

ffmpeg -f avfoundation -framerate 30 -i "1:0" \-f avfoundation -framerate 30 -video_size 640x480 -i "0" \-c:v libx264 -preset ultrafast \-filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:2016/rtmplive/room

 

7、视频片段截取

ffmpeg -ss 00:00:02 -i input.mp4 -t 6.5 -c copy cut.mp4

ffmpeg -ss 00:00:02 -i input.mp4 -to 00:00:10 -c copy cut.mp4

其中,-c copy表示是拷贝的方法

 

8、视频截图

ffmpeg -ss 00:00:05 -i input.mp4 -vframes 1 -q:v 5 -f image2 pic-%03d.jpeg

其中,-ss 00:00:05 从第五秒开始

-vframes 1 只截取1帧

-q:v 5 图片质量1-5

 

9、提取视频中的纯视频或纯音频

ffmpeg -i input.mp4 -an output.mp4

其中,input.mp4为输入文件名,output.mp4为输出文件名。

ffmpeg -i input.mp4 -vn output.mp3

其中,input.mp4为输入文件名,output.mp4为输出文件名。

 

10、视频比例转换

ffmpeg -i input.mp4 -aspect 21:9 output.mp4

将原视频转换成21比9,生成新视频

 

11、视频容器转换

ffmpeg -i input.mp4 output.avi

将mp4转换为avi

 

12、分辨率转换

ffmpeg -i input.mp4 -vf scale=480:-1 output.mp4

将原视频转换成480p视频文件

 

13、获取视频信息

ffmpeg -i input.mp4

 

14、帧率转换

ffmpeg -i input.mp4 -r 24 output.mp4

将原视频转换为24帧视频

 

15、视频倍速

视频5倍速播放指令示例

ffmpeg -i input "setpts=PTS/5" output.mp4

音频2倍速播放指令示例

fmpeg -i input.mp4 -filter:a "atempo=2.0" output.mp4

音视频同时2倍速指令示例

ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" -vn output.mp4

 

16、修改视频的帧率和分辨率

ffmpeg.exe -r 60 -i input.mp4 -s 1920x1080 -crf 12 output.mp4

将文件input.mp4转成一个帧率60分辨率1080p的视频,这里要指定crf,否则画质质量可能很差,此命令会改变视频的时间长度。

ffmpeg.exe -i video.mp4 -s 1920x1080 -r 24 -crf 12 output.mp4

如果把 -r 放后面,不会改变视频时间长度,如上指令,把60帧的改为24帧。

其中,-crf表示压缩质量相关参数,越小画质越好,但文件越大。

 

总结:

 

1、支持视频编码h264 / h265 / NVENC / QuickSync / ProRes。

2、支持音频编码MP3 / AAC / AC3 / FLAC / WAV。

3、可以批量处理多文件,批量编码成千上万个媒体文件。

4、完成媒体文件编码之后支持自动关闭,并运行后续脚本。

5、支持用户自定义设置媒体编码的优先级。

6、拖放,流映射和复用,可以批量下载M3U8网址。

8、支持FFmpeg A / V编码向导,让您轻松使用。

9、筛选档案,修剪和串联文件。



TAG: FFmpeg
已有0条评论
Copyright Your 李佳林博客| Login| 湘ICP备2023037133号| 登陆 Powered By Z-BlogPHP Theme By zb脚本