FFMPEG - Tổng hợp các lệnh xử lý video trên Linux

  Aug 7, 2018      2m
   

Trích xuất hình ảnh từ video, cắt ghép video

FFMPEG - Tổng hợp các lệnh xử lý video trên Linux

FFMPEG là thư viện hỗ trợ xử lý video rất phổ biến trên hệ điều hành Linux. Với những thao tác đơn giản như trích hình ảnh hay cắt video thì mình nên dùng các câu lệnh sẽ tiện hơn. Không cần thiết phải dùng những phần mềm có giao diện.

Video –> Ảnh: Trích hình ảnh từ video

$ ffmpeg -i 'video.mp4' -vf fps=24 '/output/img_%06d.jpg'

Với lệnh trên hình ảnh được trích ra từ video.mp4 sẽ theo format:

  • img_0001.jpg
  • img_0002.jpg
  • img_0003.jpg

Ảnh –> Video: Ghép ảnh thành video

$ ffmpeg -framerate 8 -f image2 -start_number 1 -i folder/img_%*.jpg -crf 10 -q:v 1  -pix_fmt yuv420p video.mp4

Giải thích:

  • framerate: fps (khung hình trên giây)
  • q:v: chất lượng video (1-31). Tốt nhất: 1 (dung lượng lớn nhất), tệ nhất: 31 (nhẹ nhất)

Lệnh cắt video

$ ffmpeg -i input.mp4 -ss 00:00:00 -to 00:05:00 -async 1 output1.mp4
$ ffmpeg -i input.mp4 -ss 00:00:25 -to 00:01:12 -async 1 output2.mp4

Lệnh nối video

$ nano mylist.txt
file '/path/to/file1.mp4'
file '/path/to/file2.mp4'
file '/path/to/file3.mp4'
$ ffmpeg -f concat -i mylist.txt -c copy output.mp4


$ ffmpeg -i 'concat:input1.mp4|input2.mp4' -codec copy output.mp4

Resize video

$ ffmpeg -i video1.mp4 -b:v 1M -filter:v scale=-1:720 -c:a copy video_720p.mp4
$ ffmpeg -i video1.mp4 -b:v 1M -filter:v -s 1280x720 -c:a copy video_720p.mp4
  • -b:v càng lớn thể hiện chất lượng (bitrate càng nhỏ thì block càng to –> ảnh kém rõ). Bit rate thông thường video đẹp là 3M (3 triệu bit/s = 3000 kb/s)