Cách sử dụng lệnh FFmpeg để xử lý âm thanh và video trên Linux
Hầu như bất kỳ ai liên quan đến video có thể đã nghe nói về FFmpeg trước đây. Đối với những người không quen, FFmpeg là một chương trình mã nguồn mở và miễn phí có thể chuyển đổi bất kỳ định dạng video nào sang định dạng video khác và thay đổi codec của nó.
FFmpeg hỗ trợ gần như tất cả các codec âm thanh / video (H.264, H.265, VP8, VP9, AAC, OPUS, v.v.), định dạng tệp (MP4, FLV, MKV, TS, WEBM, MP3, v.v.), và thậm chí các giao thức phát trực tuyến (HTTP, RTMP, RTSP, HLS, v.v.).
Đây là cách bạn có thể cài đặt và sử dụng FFmpeg để xử lý các tệp âm thanh và video trên Linux.
Mục Lục
Cài đặt FFmpeg trên Linux
FFmpeg là một công cụ mã nguồn mở và miễn phí có sẵn trong kho lưu trữ mặc định của hầu hết mọi bản phân phối Linux lớn. Bạn cũng có thể lấy mã nguồn miễn phí nếu muốn tự biên dịch.
sudo apt install ffmpeg
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf -y install ffmpeg
yum install ffmpeg ffmpeg-devel
pacman -S ffmpeg
Nếu mọi thứ suôn sẻ trong quá trình cài đặt, bạn sẽ có thể thấy phiên bản FFmpeg khi bạn sử dụng -phiên bản tranh luận.
ffmpeg -version
Nhận thông tin video với FFmpeg
Có thể xem thông tin của video mà bạn muốn chỉnh sửa bằng FFmpeg bằng cách sử dụng -tôi lá cờ:
ffmpeg -i example-video.mp4 -hide_banner
Đây, -hide_banner công việc của tham số là ẩn thông tin không cần thiết. Bạn có thể loại bỏ tham số này và xem sự khác biệt trong đầu ra.
Như bạn thấy, có thể nhận được rất nhiều thông tin như loại codec video, ngày tạo, siêu dữ liệu và cấu trúc bộ mã hóa của video mẫu.
Chuyển đổi tệp video hoặc tệp âm thanh sang định dạng khác
Một trong những tính năng hữu ích nhất của FFmpeg là nó có thể chuyển đổi video hoặc âm thanh sang định dạng khác. Bạn có thể làm điều này với một lớp lót đơn giản.
MOV sang MP4 Với FFmpeg
Bạn có thể chuyển đổi tệp video định dạng MOV sang MP4 bằng FFmpeg bằng lệnh dưới đây:
ffmpeg -i input-mov-video.mov output-video.mp4
Đầu tiên, hãy sử dụng -tôi tham số, viết tắt của video đầu vào. Sau đó, nhập tệp bạn muốn chuyển đổi. Cuối cùng, nhập định dạng bạn muốn chuyển đổi sang. Bạn có thể đặt đầu ra của mình bất kỳ tên nào bạn muốn.
Trong khi FFmpeg đang chạy, nó sẽ hiển thị cho bạn những thay đổi mà nó đã thực hiện trên màn hình lệnh. Tệp đầu ra của bạn sẽ được lưu trữ trong thư mục làm việc hiện tại của bạn.
WAV sang MP3 với FFmpeg
Tương tự với video, bạn có thể thực hiện các chuyển đổi tương tự cho các tệp âm thanh. Ví dụ: bạn có thể chuyển đổi tệp âm thanh WAV sang MP3 như sau:
ffmpeg -i example-wav.wav -vn -ar 48000 -ac 2 -b:a 256 output.mp3
Lệnh này có nhiều tham số hơn so với phương pháp chuyển đổi video, nhưng chúng không khó hiểu. Để giải thích những điều này:
- -vn: Đôi khi các tệp âm thanh bạn nghe có hình ảnh. Những hình ảnh này thường bắt nguồn từ video. Nếu bạn không muốn những hình ảnh như vậy trong đầu ra, bạn có thể sử dụng tham số này.
- -ar: Tham số này cho phép bạn đặt tần số âm thanh của tệp âm thanh mà bạn muốn chuyển đổi. Bạn có thể điều chỉnh chất lượng và tần số âm thanh với các giá trị như 8kHz, 44.1kHz hoặc 48kHz.
- -AC: Bạn có thể đã nghe các thuật ngữ mono và stereo trước đây. Tham số này có thể giúp bạn thiết lập số lượng kênh âm thanh.
- -ba: Tham số này cho phép bạn đặt tốc độ bit âm thanh mỗi giây. Kilobit càng cao thì chất lượng âm thanh càng cao.
Hoạt động âm thanh với FFmpeg
FFmpeg cũng có thể tách âm thanh khỏi video. Đối với điều này, chỉ cần sử dụng -vn tham số:
ffmpeg -i example-video.mp4 -vn output.mp3
Nếu bạn đã quản lý để tách âm thanh khỏi video, thì bây giờ bạn có thể thử xóa âm thanh khỏi video. Sự khác biệt ở đây là -một tham số. Bạn nên ghi nhớ thông số này nếu bạn muốn tắt bất kỳ âm thanh nào trong video:
ffmpeg -i example-video.mp4 -an output-mute.mp4
Xử lý kích thước video với FFmpeg
Kích thước video đôi khi có thể khá khó chịu, đặc biệt là khi bạn muốn tải chúng lên một nơi nào đó. Bạn không cần phải tải xuống các chương trình để cắt chúng nữa vì FFmpeg có thể làm điều này cho bạn. Tuy nhiên, có một số thông số bạn cần biết về điều này:
- -ss: Sử dụng tham số này để đặt thời gian bắt đầu của clip
- -đến: Cho phép bạn chỉ định thời gian kết thúc của clip
- -c: Đặt codec cho clip của bạn bằng tham số này
- -t: Sử dụng thông số này để đặt thời lượng của clip
Bạn có thể lấy ra nhiều ví dụ bằng cách sử dụng các tham số này. Ví dụ: nếu bạn muốn cắt video, bạn có thể sử dụng một cái gì đó như:
ffmpeg -i example-video.mp4 -ss 00:02:25 -to 00:03:50 -c copy output-trim.mp4
Cũng có thể chỉ cắt hình ảnh bên trong video chứ không phải toàn bộ video. Đối với điều này, bạn có thể sử dụng một cái gì đó như:
ffmpeg -i example-video.mp4 -filter:v "crop=w:h:x:y" output-crop.mp4
Dưới đây là các tham số được sử dụng trong lệnh nói trên:
- -bộ lọc: v: Tham số này chỉ định quy trình lọc bạn sẽ áp dụng cho video
- trồng trọt: Tham số này để chỉ định rằng một hoạt động cắt sẽ được thực hiện
- w: h: x: y: Như bạn có thể đã đoán ra, các biến w, h, x và y lần lượt biểu thị chiều rộng, chiều cao và vị trí của hộp cắt
Chỉnh sửa video trên Linux với FFmpeg
Việc chỉnh sửa video không chỉ dừng lại ở việc cắt và tỉa. Đôi khi bạn cũng cần thay đổi tỷ lệ của video. Lệnh sau sẽ thay đổi kích thước video thành kích thước bạn muốn:
ffmpeg -i example-video.mp4 -vf scale=1920:1080 output-scale.mp4
- -vf: Tham số này hoạt động giống như -bộ lọc: v đối số nhìn thấy ở trên
- tỉ lệ: Bạn có thể chỉ định kích thước tỷ lệ bạn muốn trong đầu ra của mình bằng tham số này
FFmpeg cũng cho phép bạn kết hợp nhiều video. Hãy tưởng tượng bạn có nhiều clip được mã hóa bằng cùng một codec. Nhập danh sách video bạn muốn hợp nhất thành .txt tập tin. Sau đó, chạy lệnh sau:
ffmpeg -f concat -i my-video-list.txt -c copy sum-output.mp4
Các kết hợp tham số ở đây kết hợp các tệp của bạn. Cũng có thể xoay video bằng FFmpeg:
ffmpeg -i example-video.mp4 -vf "transpose=2" output-rotate.mp4
- chuyển vị = 0: Lật dọc (mặc định)
- chuyển vị = 1: Xoay 90 độ theo chiều kim đồng hồ
- chuyển vị = 2: Xoay 90 độ ngược chiều kim đồng hồ
- chuyển vị = 3: Lật dọc
Để xoay video 180 độ theo chiều kim đồng hồ, bạn cần chỉ định thông số chuyển vị hai lần:
ffmpeg -i example-video.mp4 -vf "transpose=2,transpose=2" output-rotate.mp4
Hoạt động FPS và GOP
Như bạn đã biết, FPS có nghĩa là khung hình trên giây. GOP (nhóm ảnh) là khoảng cách giữa hai khung hình chính. FFmpeg cũng hữu ích để thay đổi một số thông số, bao gồm FPS và GOP. Nếu bạn sử dụng lệnh dưới đây, FFmpeg sẽ thay đổi FPS ban đầu thành giá trị bạn đặt:
ffmpeg -i example-video.mp4 -vf "fps=60" output-fps.mp4
Đối với GOP, bạn có thể sử dụng -g và đặt giá trị của nó thành bất kỳ thứ gì bạn muốn. Lưu ý rằng việc ép buộc quá nhiều khung hình chính có thể gây hại cho các thuật toán chuyển tiếp của một số bộ mã hóa.
ffmpeg -i example-video.mp4 -g 200 output-gop.mp4
Tạo GIF động với FFmpeg
FFmpeg cũng lý tưởng để chuyển đổi video thành GIF động. Bạn có thể sử dụng một lệnh chuyển đổi đơn giản để thực hiện việc này:
ffmpeg -i example-video.mp4 output-gif.gif
Nhưng đôi khi, bạn có thể muốn tùy chỉnh GIF. Bạn có thể sử dụng các tham số khác nhau được thảo luận ở trên để đạt được điều này:
ffmpeg -ss 00:01:15 -i example-video.mp4 -to 10 -r 10 -vf scale=250:-1 output-gif.gif
Các -r tham số ở đây có nghĩa là tốc độ khung hình. Như bạn có thể thấy, nhiều tùy chỉnh khác nhau có thể thực hiện được trong một lệnh dòng.
Ngoài việc chuyển đổi một hoặc nhiều hình ảnh thành video, bạn cũng có thể trích xuất khung hình từ video. Lệnh sau sẽ trích xuất một khung hình mỗi giây từ video đầu vào của bạn. Ngoài ra, những hình ảnh được trích xuất này sẽ có tên gồm hai chữ số như 01.jpeg, 02.jpegv.v. Nếu muốn, bạn cũng có thể thêm các thông số khác mà bạn đã học.
ffmpeg -i example-video.mp4 -r 1 image-%02d.jpeg
Bạn cũng có thể sử dụng các định dạng khác như PNG và BMP cho các hình ảnh được trích xuất.
Tại sao bạn nên sử dụng FFmpeg trên Linux?
Như bạn có thể thấy, FFmpeg rất lợi thế về nhiều mặt. Bạn không cần phải có bất kỳ kiến thức kỹ thuật hoặc kinh nghiệm Linux chuyên nghiệp nào cho việc này. Bạn có thể thực hiện các chức năng xử lý phương tiện khác nhau chỉ với một vài tham số. Nếu bạn định thực hiện các chỉnh sửa không dài lắm, bạn không cần các chương trình máy tính đắt tiền và tư cách thành viên cao cấp trực tuyến. Hơn nữa, FFmpeg hoạt động rất tốt ngay cả trên các thiết bị cấp thấp.
Ngoài ra, các tính năng của FFmpeg không giới hạn ở trên. Khi bạn đọc tài liệu và hướng dẫn sử dụng, bạn có thể thấy phần mềm thực sự mạnh mẽ như thế nào. Ngay cả khi sử dụng –Cứu giúp tham số và Đàn ông , bạn có thể biết thêm thông tin chi tiết về cách sử dụng FFmpeg. Ngoài ra còn có các trình chuyển đổi tuyệt vời khác dành cho Linux để cạnh tranh với FFmpeg.