Tin tức khuyến mãi hot nhất hiện nay
Thứ Ba, 20 tháng 3, 2018
FFMPEG hướng dẫn sử dụng phần 1
I. FFMPEG là gì
FFmpeg là một thư viện có rất nhiều tiện ích cho việc xử lý video. Tính năng nổi bật nhất có lẽ là khả năng encode/decode nhiều video format khác nhau, giúp convert qua lại nhiều định dạng video. Ngoài ra, chúng ta cũng có thể dùng FFmpeg để cắt một đoạn video, crop video, chụp lại các frame và xuất ra dạng hình ảnh,… Điều đó với các bạn dùng Windows thì có khối phần mềm để làm, nhưng nếu bạn muốn làm những việc sau, bạn buộc sẽ cần dùng đến FFmpeg:_Convert qua lại các định dạng video flv, mp4, avi,… _Convert đồng loạt các video trong các thư mục khác nhau. _Cắt một đoạn trong các video. _Tự động convert video từ mp4, avi sang flv (hoặc ngược lại) mỗi khi upload chúng lên server. _Chụp screenshot, crop và tự động chụp screenshot làm thumbnail từ 1 frame bất kì của video khi video vừa được upload lên.
II. Hướng dẫn sử dụng FFMPEG đơn giản
- Chuyển đổi định dạng video:
Công thức:
ffmpeg -i <đường dẫn tệp tin> <đường dẫn output> Trong đó:
_ffmpeg là định danh chương trình
_-i : định nghĩa input file
Ví dụ: _Chuyển đổi MOV sang FLV:
ffmpeg -i movie1.mov movie1.flv
_Chuyển đổi Mpeg sang FLV:
ffmpeg -i movie1.mpeg movie1.flv
_Chuyển đổi AVI sang FLV (kích thước 500×500):
ffmpeg -i movie1.avi -s 500×500 movie1.flv
-s : kích thước của video output
_Chuyển đổi 3GP to FLV (xóa tiếng, chỉ lấy hình):
ffmpeg -i movie1.3gp -sameq -an movie1.flv
_Chuyển đổi MPEG sang 3GP:
ffmpeg -i movie1.mpeg -ab 8.85k -acodec libamr_wb -ac 1 -ar 16000 -vcodec h263 -s qcif movie2.3gp
-acodec : định dạng audio
libarm_wb : tên lib arm
-ac : audio chanel kênh phát sóng của audio 1 mono 2 stereo
-ar : audio bitrate số bit âm thanh trên 1 giây
-vcodec : định dạng video
h263,h264 : tên lib định dạng của video
qcif: Format Video Resolution SQCIF 128 × 96 QCIF 176 × 144 SCIF 256 x 192 SIF(525) 352 x 240 CIF/SIF(625) 352 × 288 4SIF(525) 704 x 480 4CIF/4SIF(625) 704 × 576 16CIF 1408 × 1152 DCIF 528 × 384
_FFV1 Encoding:
ffmpeg -i -vcodec ffv1 -an output.mov
-an : bỏ tiếng video
_Chuyển đổi flv sang mpg:
ffmpeg -i myvideo.flv -ar 22050 -b 500 -s 320x240 myvideo.mpg
**- Chuyển định dạng audio **
_Chuyển đổi aac sang mp3 giữ nguyên các thông tin: ffmpeg -i audio1.aac -ar 22050 -ab 32 -map_meta_data audio1.mp3:audio1.aac audio1.mp3
_Chuyển đổi WMV sang MP3: ffmpeg -i audio1.wmv audio1.mp3
_Chuyển đổi WMV sang FLV: ffmpeg -i audio1.wmv audio1.flv
_Chuyển đổi AMR sang MP3: ffmpeg -i audio1.amr -ar 22050 audio1.mp3
_Chuyển đổi FLV sang MP3: ffmpeg -i movie.flv -vn -acodec copy movie.mp3
- Chuyển một loạt hình ảnh có sẵn thành video và ngược lại
ffmpeg -f image2 -i image%d.jpg video.mpg
_Trong đó image%d.jpg thay thế cho một danh sách các hình ảnh cần chuyển đổi: image1.jpg, image2.jpg …
_Ngược lại chuyển 1 video thành ảnh: ffmpeg -i video.mpg image%d.jpg
_Chuyển đoạn video thành ảnh động .gif, lưu ý là ảnh này chưa nén nên cũng tương đối nặng: ffmpeg -i video_origine.avi gif_anime.gif
-Gắn âm thanh vào đoạn video không tiếng
ffmpeg -i son.wav -i video_origine.avi video_finale.mpg
_Điểm quan trọng ở câu lệnh này là độ khớp hình với tiếng theo ý định của người chuyển.
-Cắt đoạn trong video
_Nếu bạn có một video có thời lượng 45 giây, nhưng bạn muốn rút ngắn nó xuống còn 40 giây thì bạn có thể sử dụng lệnh sau
ffmpeg -i yourvideoname.mp4 -ss 00:00:45 -codec copy -t 40 outputclip.mp4
-Thêm ảnh nền vào tập tin audio
_Bạn hãy di chuyển ảnh nền mà bạn muốn thêm vào tập tin audio vào cùng thư mục “bin” của FFmpegTool và sử dụng lệnh sau để gán vào.
ffmpeg -loop 1 -i inputimage.jpg -i inputaudio.mp3 -c:v libx264 -c:a –strict experimental -b:a 192k -shortest outputfile.mp4
-Nối video
_Nếu bạn có những tập tin video theo từng phần và bạn muốn nối chung lại thành 1 tập tin video duy nhất, bạn có thể tiến hành như sau.
_Di chuyển các tập tin video cần nối vào thư mục “bin” của FFmpegTool Mở Notepad lên và nhập đường dẫn tập tin theo cú pháp như hình dưới
K_hi nhập xong, hãy lưu lại thành tập tin TXT như “file-list.txt” chẳn hạn. Sau đó nhập vào lệnh sau:
ffmpeg -f concat -i file-list.txt -c copy outputfile.mp4
-Add logo lên video
ffmpeg -i in.mp4 -framerate 25 -loop 1 -i logo.png -filter_complex "[1:v] fade=out:st=30:d=1:alpha=1 [ov]; [0:v][ov] overlay=10:10 [v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy -shortest out.mp4
-filter_complex : hiệu ứng của video và audio, [1:v] lấy input logo.png (1 index của logo trong câu lệnh, v: video vd [0:a] thì trong đó 0 là indext và a là audio tức audio của video); fade=out:st=30:d=1:alpha=1 di chuyển trong 30px 1s có alpha di chuyển bằng 1, overlay vị trí hiển thị của logo.
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
Related Posts:
Tổng hợp các bể bơi tại các khu vực ở Hà Nội Bể bơi Club M, Quận Thanh Xuân, Hà Nội Nhiều bạn không biết những bể bơi tại Hà Nội, Bài viết dưới đây của mình sẽ giúp bạn có cách nhìn tổng hợp về những bể bơi tại Hà Nội và tìm ra những địa chỉ lý tưởng gần nhà đ… Đọc thêm
Hạt Đác là gì và công dụng của hạt đác Hạt đác là một loại hạt có tính chất giải khát, được dân hà nội và các tỉnh thành vô cùng yêu thích bởi hương vị lạ và có sự Giòn cũng rất lạ 1. Hạt đát là gì? Cây hột đác rất dễ nhầm với chà là ( thốt nốt) và chỉ mọc tron… Đọc thêm
Việc tịnh thân cho hoạn quan thời xưa là sự đau đớn về cả thể xác lẫn tinh thần Để trở thành những người đàn ông hầu hạ vua chúa và phi tần trong cung, thái giám phải trải qua quá trình tịnh thân, tức cắt bỏ bộ phận sinh dục, vô cùng đau đớn. Theo Morning Post, sử sách Trung Quốc ghi rằng, những người … Đọc thêm
Thức Dậy sớm đem lại quá nhiều lợi ích trong đó có cả sức khỏe và sự thành công! Nhiều tỷ phú và những người thành công trên thế giới đều có thói quen dậy sớm. Vậy dậy sớm đem đến những lợi ích gì, nó có ảnh hưởng như thế nào đến thành công của họ? Cùng tìm hiểu câu chuyện về một thanh niên người M… Đọc thêm
Công dụng của cây chùm ngây là gì ? Cây chùm ngây là cây gì? Cây Chùm Ngây Hay còn được gọi là ba đậu dại. Nó thuộc cây thân gỗ phổ biến trong chi chùm ngây. Có tên khoa học là Moringa. Được xuất xứ từ vùng Nam Á. Tuy nhiên lại được mọc ở nhiều… Đọc thêm