Có thể nhiều bạn chưa nghe đến FFmpeg nhưng chắc hẳn bạn đã từng sử dụng một trong các phần mềm sau: Baofeng Yingyin, QQ Yingyin, KMP, GOM Player, PotPlayer (2010), KMPlayer. FFmpeg là phần mềm mã nguồn mở, các phần mềm sử dụng FFmpeg theo thỏa thuận cũng phải là nguồn mở. Tuy nhiên, những phần mềm âm thanh và video này không tuân thủ thỏa thuận nên bị đưa vào "danh sách đen" của FFmpeg.

FFmpeg là framework mã nguồn mở hàng đầu để xử lý đa phương tiện âm thanh và video, sử dụng giấy phép LGPL hoặc GPL. Nó cung cấp các chức năng phong phú như thu thập âm thanh và video, mã hóa, giải mã, chuyển mã, tách âm thanh và video, hợp nhất, phát trực tuyến, bộ lọc, v.v. Nó bao gồm thư viện codec âm thanh/video rất tiên tiến libavcodec, có độ tin cậy và khả năng di chuyển rất cao. chất lượng codec làm cho nó trở thành một tạo phẩm xử lý đa phương tiện.

Đồng thời, FFmpeg cũng cung cấp các gói lệnh, có thể sử dụng trên Windows, Linux và các nền tảng khác. Nhiều người cho rằng FFmpeg khó sử dụng. Trên thực tế, chỉ cần cài đặt công cụ lệnh FFmpeg là chúng ta có thể triển khai nhanh chóng. chuyển đổi định dạng video và nén video trên Windows. Và chuyển đổi giữa video và hình ảnh.

Phần mềm nén và chuyển đổi định dạng video và âm thanh miễn phí và mã nguồn mở FFmpeg - Cách chuyển đổi định dạng và nén video

Để biết thêm các công cụ quản trị trang web và phần mềm quản trị trang web, đây là:

  1. Những kỹ năng cần thiết dành cho quản trị viên web để thêm hình mờ vào ảnh hàng loạt - Phương pháp xử lý hàng loạt XnView và Meitu XiuXiu
  2. Trình chỉnh sửa tốt nhất cho WordPress: Cài đặt và sử dụng Windows Live Writer (Windows 10)
  3. Chụp ảnh màn hình không cần lo lắng với Yisoft: Công cụ chụp màn hình ShareX - ngắn gọn, súc tích và đầy đủ chức năng. Các tác vụ tự động có thể chụp ảnh và quay video chuyển động.

1. Cài đặt phần mềm FFmpeg

trang mạng:

  1. Trang web chính thức: https://ffmpeg.zeranoe.com/builds/
  2. Tải xuống thay thế: https://wzfou.com/down/ffmpeg64 (64-bit)

Sau khi vào website các bạn chọn phiên bản muốn cài đặt, hỗ trợ Windows 7 và Mac OS X 10.10 trở lên.

Giải nén gói nén đã tải xuống để lấy thư mục ffmpeg-xxx-win64-static, đổi tên thành ffmpeg, sau đó đặt thư mục ffmpeg vào thư mục chương trình, ví dụ đường dẫn vị trí của wzfou.com là: C:.

Mở trang cài đặt biến môi trường: Explorer > PC này > Nhấp chuột phải - Thuộc tính > Cài đặt hệ thống nâng cao > Biến môi trường. Click đúp vào mục Path để vào trang chỉnh sửa, chọn New, dán đường dẫn C:ffmpegbin vào ô nhập và xác nhận lưu. (Bấm vào để phóng to)

Bây giờ hãy mở CMD của bạn, nhập ffmpeg và nhấn Enter để thực thi. Nếu bạn thấy thông báo trả về, điều đó có nghĩa là bạn đã cài đặt thành công FFmpeg.

2. Sử dụng nhanh FFmpeg

Nếu bạn không phải là người dùng âm thanh và video chuyên nghiệp, bạn chỉ có thể xem phần này trong các thao tác thông thường của FFmpeg và các thao tác phức tạp hơn sau đó có thể được "xem theo yêu cầu".

2.1 Định dạng chuyển đổi

Lệnh đơn giản và được sử dụng phổ biến nhất để chuyển đổi định dạng FFmpeg là:

ffmpeg -i input.xxx output.xxx

Để chuyển đổi định dạng mp4 và flv, lệnh như sau:

ffmpeg -i input.flv output.mp4
#或者
ffmpeg -i input.mp4 output.flv

Để chuyển đổi định dạng mp4 và webm, lệnh như sau:

ffmpeg -i input.mp4 output.webm
#或者
ffmpeg -i input.webm output.mp4

2.2 Video nén

Các lệnh để FFmpeg nén video như sau:

ffmpeg -i input.mp4 -r 10 -b:a 32k output.mp4 #对它降低fps和音频码率的方法大大压缩文件大小,而清晰度不变。
#或者
ffmpeg -i input.mp4 -vcodec libx264 -crf 20 output.mp4 #采用H.264视频压缩算法和AAC音频压缩算法,视频帧率10fps,音频码率32k
#或者是
ffmpeg -i wzfou.mp4 -crf 20 wzfou.mp4
ffmpeg -i wzfou1.flv -crf 20 wzfou1.mp4
ffmpeg -i wzfou1.mp4 -crf 30 wzfou30.mp4
ffmpeg -i 480p.mp4 480p.webm

2.3 Chuyển đổi gif

Để chuyển đổi video sang gif, lệnh như sau:

#把视频的前 30 帧转换成一个 Gif
ffmpeg -i input_video.mp4 -vframes 30 -y -f gif output.gif

#将视频转成 gif 将输入的文件从 (-ss) 设定的时间开始以 10 帧频率,输出到 320x240 大小的 gif 中,时间长度为 -t 设定的参数。
ffmpeg -ss 00:00:00.000 -i input.mp4 -pix_fmt rgb24 -r 10 -s 320x240 -t 00:00:10.000 output.gif

3. Thao tác video FFmpeg

Các tham số lệnh của FFmpeg như sau:

Hướng dẫn liên quan:

-crt: Tùy chọn này sẽ ảnh hưởng trực tiếp đến tốc độ bit của video đầu ra. Sau khi cài đặt thông số này, cài đặt -b để chỉ định tốc độ bit sẽ không có hiệu lực. Phạm vi giá trị của crt là 0-50, 0 là mã hóa không bị biến dạng. , khuyến nghị là 18-28.

-preset: Chỉ định cấu hình mã hóa x264 cung cấp một số giá trị đặt trước và các giá trị đặt trước này có thể được chỉ định thông qua giá trị đặt trước. Giá trị đặt trước chủ yếu ảnh hưởng đến tốc độ mã hóa và không ảnh hưởng nhiều đến chất lượng của kết quả được mã hóa.

Sau khi thực hiện lệnh chuyển mã, hãy điều chỉnh giá trị tham số -crf thành 19, 20, 28 và 51 tương ứng và chuyển mã lại đầu ra thành các tệp MP4 khác nhau. Ghi lại dữ liệu và so sánh nó như sau:

Tệp nguồn                Kích thước      Tỷ lệ thu nhỏ
crf = 18       46,3 < x2>            21%
crf = 19  < x2>    36,7            <x2 > 33%
crf = 20       31.2       < x2>      43%
crf = 28       26,5               83%
crf = 51        1,25              97 %

3.1 Chỉ định định dạng chuyển đổi

Nói chung, FFmpeg sẽ chọn định dạng vùng chứa và định dạng mã hóa phù hợp nhất dựa trên định dạng tệp hoặc bạn cũng có thể chỉ định thủ công. Ví dụ:

ffmpeg -i out.ogv -vcodec h264 out.mp4
ffmpeg -i out.ogv -vcodec mpeg4 out.mp4
ffmpeg -i out.ogv -vcodec libxvid out.mp4
ffmpeg -i out.mp4 -vcodec wmv1 out.wmv
ffmpeg -i out.mp4 -vcodec wmv2 out.wmv

-i được theo sau bởi tên tệp đầu vào. -vcodec được theo sau bởi định dạng mã hóa, h264 là tốt nhất, nhưng nó không được cài đặt theo mặc định trên hệ thống Windows. Nếu muốn chèn video ppt thì chọn wmv1 hoặc wmv2 là phù hợp nhất.

Ngoài ra còn có các tùy chọn bổ sung: -r chỉ định tốc độ khung hình, -s chỉ định độ phân giải, -b chỉ định tốc độ bit; kênh âm thanh có thể được sửa đổi Chuyển mã, -acodec chỉ định mã hóa âm thanh, -ab chỉ định tốc độ bit âm thanh, ví dụ: -ac chỉ định số lượng kênh :

ffmpeg -i out.ogv -s 640x480 -b 500k -vcodec h264 -r 29.97 -acodec libfaac -ab 48k -ac 2 out.mp4

Chuyển đổi định dạng như cũ, tức là giữ nguyên định dạng mã hóa video và âm thanh gốc.

ffmpeg -i input.flv -vcodec copy -acodec copy out.mp4 #-vcodec copy 和 -acodec copy 表示所使用的视频和音频编码格式,为原样拷贝。

3.2 Hợp nhất video MP4

FFmpeg có thể hợp nhất nhiều video. Tốt nhất là chuyển đổi mp4 sang ts với chất lượng lossless trước rồi hợp nhất chúng. Lệnh như sau:

ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i 2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4

3.3 Thay đổi kích thước độ phân giải

Nếu bạn muốn điều chỉnh độ phân giải của video, bạn có thể sử dụng lệnh sau:

ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4
# or
ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4

Nếu bạn muốn điều chỉnh tỷ lệ khung hình của video, bạn có thể sử dụng lệnh sau:

ffmpeg -i input.mp4 -aspect 16:9 output.mp4
#常见的宽高比:16:9、4:3、16:10、5:4

3.4 Chuyển đổi tốc độ bit của video

Các tham số chính liên quan đến tốc độ bit ffmpeg là -minrate, maxrate, -b:v.

ffmpeg -i input.mp4 -b:v 2000k output.mp4

#把原始视频转换成 2 Mbps 码率视频。ffmpeg 官方建议,在设置 -b:v 时,同时加上 -bufsize 用于设置码率控制缓冲器大小,让整体码率更加趋近于希望的值,减少波动。
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k output.mp4

# -minrate 和 -maxrate 比较简单,设置码率不要低于或者超过某一个阈值
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k -maxrate 2500k output.mp4

3.5 Chỉnh sửa và cắt video

Nếu bạn muốn thay đổi phần chặn của một phần video hoặc giữ một phần nhất định của video, lệnh như sau:

ffmpeg -i a.mov -ss 00:00:21 -t 00:00:10 -acodec aac -vcodec h264 -strict -2 out.mp4
#其中 -ss 00:00:21 表示开始剪辑的位置(时间点),-t 00:00:10 表示剪辑的长度,即 10 秒钟

ffmpeg -i a.mov -strict -2 -vf crop=1080:1080:0:420 out.mp4
#将竖向的视频 1080 x 1920,保留中间 1080×1080 部分,其中的 crop=1080:1080:0:420 才裁剪参数,具体含义是 crop=width:height:x:y,其中 width 和 height 表示裁剪后的尺寸,x:y 表示裁剪区域的左上角坐标。比如当前这个示例,我们只需要保留竖向视频的中间部分,所以 x 不用偏移,故传入0,而 y 则需要向下偏移:(1920 – 1080) / 2 = 420

4. Thao tác hình ảnh

4.1 Ghép ảnh thành video

Trước tiên, hãy đặt những hình ảnh bạn muốn hợp nhất vào một thư mục, sau đó đổi tên chúng thành: img001.png, img002.png, img003.png, vì vậy .

Cuối cùng thực hiện lệnh ghép ảnh thành video:

ffmpeg -framerate 24 -i img%03d.png output.mp4
#或者
ffmpeg -r 0.5 -i  img%03d.jpg  video.avi

4.2 Chuyển đổi hình ảnh và video

Lệnh như sau:

#将图片序列合成视频
ffmpeg -f image2 -i image%d.jpg video.mpg

#将视频分解成图片序列
ffmpeg -i video.mpg image%d.jpg

#截取一张352x240尺寸大小的,格式为jpg的图片:
ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg

#把视频的前30帧转换成一个Animated Gif :
ffmpeg -i test.asf -vframes 30 -y -f gif a.gif

#在视频的第8.01秒处截取 352*240 的缩略图
ffmpeg -i test2.asf -y -f image2 -ss 08.010 -t 0.001 -s 352x240 b.jpg
ffmpeg -r 0.5 -i d:/tmpImg/image%04d.jpg -i d:/time.mp3 -vcodec mpeg4 d:/video5.avi

5. Các lệnh thường dùng của FFmpeg

Sau đây là các lệnh phổ biến để chuyển đổi định dạng ffmpeg, nén video, hợp nhất và cắt video:

# 去掉视频中的音频
ffmpeg -i input.mp4 -vcodec copy -an output.mp4
// -an: 去掉音频;-vcodec:视频选项,一般后面加copy表示拷贝

# 提取视频中的音频
ffmpeg -i input.mp4 -acodec copy -vn output.mp3
// -vn: 去掉视频;-acodec: 音频选项, 一般后面加copy表示拷贝

# 音视频合成
ffmpeg -y –i input.mp4 –i input.mp3 –vcodec copy –acodec copy output.mp4
// -y 覆盖输出文件

#剪切视频
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.mp4 -vcodec copy -acodec copy output.mp4
// -ss 开始时间; -t 持续时间

#视频截图
ffmpeg –i test.mp4 –f image2 -t 0.001 -s 320x240 image-%3d.jpg
// -s 设置分辨率; -f 强迫采用格式fmt;

# 视频分解为图片
ffmpeg –i test.mp4 –r 1 –f image2 image-%3d.jpg
// -r 指定截屏频率

# 将图片合成视频
ffmpeg -f image2 -i image%d.jpg output.mp4

#视频拼接
ffmpeg -f concat -i filelist.txt -c copy output.mp4

#将视频转为gif
ffmpeg -i input.mp4 -ss 0:0:30 -t 10 -s 320x240 -pix_fmt rgb24 output.gif
// -pix_fmt 指定编码

#将视频前30帧转为gif
ffmpeg -i input.mp4 -vframes 30 -f gif output.gif

#旋转视频
ffmpeg -i input.mp4 -vf rotate=PI/2 output.mp4

#缩放视频
ffmpeg -i input.mp4 -vf scale=iw/2:-1 output.mp4
// iw 是输入的宽度, iw/2就是一半;-1 为保持宽高比

#视频变速
ffmpeg -i input.mp4 -filter:v setpts=0.5*PTS output.mp4

#音频变速
ffmpeg -i input.mp3 -filter:a atempo=2.0 output.mp3

#音视频同时变速,但是音视频为互倒关系
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4


# 视频添加水印
ffmpeg -i input.mp4 -i logo.jpg -filter_complex [0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] -map [out] -map 0:a -codec:a copy output.mp4
// main_w-overlay_w-10 视频的宽度-水印的宽度-水印边距;

# 截取视频局部
ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4

# 截取部分视频,从[80,60]的位置开始,截取宽200,高100的视频
ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4

# 截取右下角的四分之一
ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4

# 截去底部40像素高度
ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4

6. Hiệu ứng phần mềm FFmpeg

Sau đây là minh họa về hiệu ứng video nén FFmpeg (kích thước video nhỏ hơn 1,3MB):

Sau đây là ảnh động được FFmpeg chuyển đổi sang WebP (dung lượng chưa tới 700KB, bấm vào để xem ảnh động):

7. Tóm tắt

FFmpeg là một tạo phẩm để chuyển đổi định dạng. Mặc dù nó không thuận tiện khi sử dụng như máy khách, nhưng chỉ cần bạn nắm vững một số lệnh cơ bản là đủ để hoàn thành quá trình chuyển đổi và nén âm lượng của MP4, FLV, Gif, WebP và các loại khác. định dạng. Nó phổ biến trên nền tảng Windows và Linux.

Đồng thời, FFmpeg cũng phù hợp với người dùng chuyên nghiệp. Nếu bạn có yêu cầu cụ thể về video, âm thanh và các định dạng khác, bạn có thể tham khảo các thông số chính thức của FFmpeg. Bạn chỉ cần thêm một vài thông số vào định dạng chuyển đổi và nén. tốc độ chuyển đổi và nén video rất nhanh.

Để lại một câu trả lời