[FFmpeg] Các câu lệnh cơ bản trong việc edit video.


FFmpeg là một phần mềm xử lý video,audio (và cả ảnh) rất mạnh,nhỏ gọn không cần cài đặt.Tuy nhiên nhược điểm của nó là không có giao diện đồ họa,bạn sẽ phải gõ từng dòng lệnh.Mình xin giới thiệu tới các bạn một vài lệnh cơ bản,hi vọng sẽ hữu ích cho các bạn khi phải xử lý video.

Chuẩn bị
Trước tiên, bạn cần tiến hành tải về FFmpeg phù hợp với hệ điều hành mình đang dùng  tại đây.

Sau khi tải về,bạn giải nén file .zip ra đâu đó,ta được như thế này.


Nếu bạn encode sub thì bạn cần download thêm thư mục 
fonts ,hãy chép nó vào thư mục bin.

Trong các phiên bản hiện tại khi giải nén ra bạn ko còn thấy file ff-prompt.bat nữa,mình cũng ko biết tại sao họ lại bỏ đi,nhưng có nó dùng rất tiện nên mình gửi các bạn link download file này.

Sử dụng
Để bắt đầu sử dụng, bạn tiến hành di chuyển tập tin media mình cần làm việc vào thư mục “bin” . Ở đây mình sẽ sử dụng tên tập tin mặc định đặt là “test.mp4” để làm ví dụ.Bạn bật ff-frompt.bat lên và gõ các lệnh vào.

Một vài tham số cơ bản
Trong các lệnh sẽ được trình bày dưới đây sẽ xoay quanh một vài tham số cơ bản như
-i test.mp4 Nhập file đầu vào tên là test.mp4
-c:v Codec của video đang xử lý
-c:a Codec của audio đang xử lý
-map 0:0 Chỉ định luồng đầu tiên của file đầu vào thứ 0 sẽ được xử lý (thường dùng trong trường hợp có nhiều file đầu vào, ví dụ bạn muốn mux video của file thứ 0 với audio của file thứ 1)
-vf Gọi filter đồ họa xử lý 1 tác vụ nào đó
-an Khử audio
-vn Khử video
......
Các tham số khác sẽ được trình bày trong từng câu lệnh cụ thể.

Phân tách các luồng (stream) audio và video nếu cần
Trong 1 file video như các bạn thường ngày vẫn dùng có thể có rất nhiều luồng như: luồng video,luồng audio, luồng subtiles.Một vài file phim hd có thể có  2 luồng audio (tiếng anh và tiếng việt chẳng hạn)

Xuất video
ffmpeg -i test.mp4 -vcodec copy -an test2.mp4

Xuất audio
ffmpeg -i test.mp4 -vn -acodec copy test2.mp4

Xuất sub subtitles (sortsub)
ffmpeg -i test.mp4 -vn -an -scodec copy test2.txt
Chú ý: Container Mp4 không hỗ trợ luồng phụ đề riêng (Nếu có là đã ReEncode vào Video)

Xử lý video
Rotate video
Một số video quay từ điện thoại thường bị quay ngược kích thước (Có tham số rotate trong info)
Loại bỏ tham số rotate trong info,trả về chiều gốc của video
ffmpeg -i test.mp4 -c copy -metadata:s:v:0 rotate=0 test2.mp4
Quay video theo hướng mong muốn
ffmpeg -i test2.mp4 -vf "transpose=1" -c:a copy test3.mp4
0 = 90 Ngược chiều kim đồng hồ và lật video
1 = 90 Theo chiều kim đồng hồ
2 = 90 Ngược chiều kim đồng hồ
3 = 90 Theo chiều kim đồng hồ và lật video

Convert video
ffmpeg -i test.flv -c:v libx264 -c:a aac test2.mp4

Thay dổi kích thước video
ffmpeg -i test.mp4 -s 1280*720 -c:a copy test2.mp4

Cut video
-ss thời điểm bắt đầu cắt (dùng -ss 00:00:00.000 nếu muốn cắt chính xác đến mili giây)
-t thời gian cắt
Ví dụ cắt 3,5 giây từ thời điểm đầu video
ffmpeg -i test.mp4 -codec copy -ss 00:00:00.000 -t 00:00:03.500 test2.mp4

Split video
ffmpeg -i test.mp4 -t 1 test2.mp4 -ss 00:00:01 test3.mp4

Join nhiều video
ffmpeg -f concat -safe 0 -i mylist.txt -c copy join.mp4
nội dung mylist.txt:
# this is a comment
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'

Mux video và audio
ffmpeg -i test.mp4 -i test2.m4a -c copy test3.mp4

Crop video
-filter:v "crop=out_w:out_h:x:y"
Trong đó:
out_w là số pixel chiều rộng của video xuất ra
out_h là số pixel chiều cao của video xuất ra
x và y là tọa độ chiều rộng và cao (pixel) của điểm bắt đầu crop
Ví dụ:
Ta sử dụng thêm ffplay để xem trước file đã cắt
ffplay -i test.mp4 -filter:v "crop=1280:720:100:100"
Nếu các thông số đã hợp lý thì ta sẽ crop thật
ffmpeg -i test.mp4 -filter:v "crop=1280:720:100:100" -c:a copy test2.mp4

Encode phụ đề vào video
ffmpeg -i test.mp4 -vf "ass=subtitles.ass" -c:a copy test2.mp4

Add logo vào video
-filter_complex "overlay=x:y"
x,y là số pixel tính chiều dài và chiều cao tính từ góc trên cùng bên trái
Ví dụ căn giữa
ffmpeg -i test.mp4 -i logo.png -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" test2.mp4
main_w – chiều rộng video gốc
main_h – chiều cao video gốc
overlay_w – chiều rộng logo
overlay_h – chiều cao logo

Xử lý audio
Convert audio
ffmpeg -i test.m4a -c:a libmp3lame -ab 128k test2.mp3
ffmpeg -i test.wav -c:a aac -ab 128k test2.mp3
ffmpeg -i test.mp4 -vn -c:a pcm_s16le -ar 44100 -ac 2 test2.wav

Cut,join audio tương tự như video

Bài đăng phổ biến từ blog này

Hướng dẫn cài đặt phần mềm biên tập audio Audacity

Tổng hợp link download tất cả các phiên bản Windows.