Tạo Ảnh động GIF từ Video trên Linux
GIF động được phổ biến trên các trang web truyền thông xã hội, sứ giả và hơn thế nữa. Chúng thường ngắn và thẳng đến điểm. Bạn đã bao giờ muốn chia sẻ một đoạn video ngắn về một phần thú vị của video chưa? Bạn có thể tạo một gif động từ một tệp video mà bạn có thể chia sẻ qua nhiều trang web xã hội và / hoặc các ứng dụng trò chuyện.
Bài viết này là một cuộc thảo luận về cách tạo một gif động của một đoạn video trên Linux bằng cách sử dụng các công cụ dòng lệnh.
Thiết lập
Để tạo một gif động từ video, chúng tôi yêu cầu hai công cụ. Việc đầu tiên sẽ được sử dụng để snip hoặc cắt chỉ là một phần của video chúng tôi quan tâm và đồng thời chụp ảnh và tạo ra các hình ảnh gif cá nhân. Công cụ thứ hai sẽ kết hợp các gif được tạo này vào gif động cuối cùng.
Công cụ 1 là ffmpeg, mà theo định nghĩa riêng của nó, có thể giải mã, mã hóa, chuyển mã, mux, demux, stream, lọc và chơi khá nhiều thứ mà con người và máy móc đã tạo ra . Thật không may, vì lý do nằm ngoài phạm vi của bài viết này, ffmpeg không có sẵn trên kho lưu trữ Ubuntu chính thức cho các phiên bản Ubuntu từ 11.10 đến 14.10. Rất may, ffmpeg được dự kiến sẽ trở lại kho lưu trữ Ubuntu chính thức từ Ubuntu 15.04 sẽ được phát hành vào tháng 4 năm 2015.
Để cài đặt ffmpeg trong các phiên bản Ubuntu không có trong kho chính thức, bạn có thể tải xuống các bản dựng tĩnh từ đây, sao chép mã nguồn bằng git,
git clone git: //source.ffmpeg.org/ffmpeg.git ffmpeg
hoặc thêm PPA của Jon Svenrinsson bằng các lệnh sau:
sudo apt-add-repository ppa: jon-severinsson / ffmpeg sudo apt-get cập nhật sudo apt-get cài đặt ffmpeg
Công cụ thứ hai là imagemagick cho phép người dùng thao tác hình ảnh theo nhiều cách khác nhau. Imagemagick có sẵn thông qua các kênh cài đặt Ubuntu chính thức và có thể được cài đặt bằng lệnh sau:
sudo apt-get cài đặt imagemagick
Quay video
Gifs động là tốt hơn như clip ngắn. Một gif động là một chuỗi các hình ảnh gif khác nhau được hiển thị sau cái khác. Nếu mỗi gif là 1MB và hoạt ảnh của bạn có 100 hình ảnh, gif động của bạn sẽ là 100MB. Bạn chắc chắn không muốn chuyển đổi một bộ phim hai giờ thành một gif động. Điều đầu tiên chúng tôi sẽ làm là chụp nhanh video giữa điểm bắt đầu và điểm dừng đã chọn và lưu các ảnh chụp nhanh này dưới dạng hình ảnh gif.
Đầu tiên tạo một thư mục nơi các gif được tạo sẽ được lưu lại.
mkdir ffmpeg_dir
Sau đó, chạy lệnh, thay thế “video.mp4” bằng tệp video mong muốn của bạn:
ffmpeg -ss 00:00:02 -i video.mp4 -to 5 -r 5 -vf scale = 400: -1 ffmpeg_dir / out% 04d.gif
Trong lệnh trên, các tùy chọn và mô tả của chúng là:
ss
- bắt đầu quay ở vị trí. Vị trí có thể là số bằng giây hoặc vị trí tuyệt đối trong video được biểu thị bằng “hh: mm: ss [.xxx]” (tùy chọn mili giây)i
- video đầu vào.mp4- ngừng ghi ở vị trí. Vị trí cũng có thể là số trong vài giây (có nghĩa là bản ghi cho số giây đã cho) hoặc có thể là vị trí tuyệt đối trong video.
vf
- biểu đồ bộ lọc. Chúng tôi sử dụng nó để chia tỷ lệ hình ảnh được tạo thành kích thước mong muốn của chúng tôi (scale = width: height). Chúng tôi đã chỉ định -1 cho chiều cao, cho biết tỷ lệ co phải được duy trì, trong khi chiều rộng phải là 400 pixel. Hình ảnh được tạo có thể bị bóp méo bằng cách chỉ định giá trị chiều rộng và chiều cao tùy ýr
- tỷ lệ khung hình (khung hình trên giây). Giá trị cao hơn nghĩa là nhiều hình ảnh hơn sẽ được chụp, điều này sẽ dẫn đến hoạt ảnh mượt mà hơn nhưng gif động lớn hơn.
Thư mục “ffmpeg_dir” bây giờ sẽ chứa hình ảnh gif. Tổng số ảnh phụ thuộc vào độ dài của clip mong muốn và tốc độ khung hình.
Tạo hoạt ảnh
Để hợp nhất các gif thành một gif động khổng lồ, chúng tôi sử dụng một công cụ tưởng tượng được gọi là convert
.
chuyển đổi -delay 1x5 - vòng 0 ffmpeg_dir / out * .gif ffmpeg_dir / animation.gif
delay
- chỉ định khoảng thời gian tạm dừng giữa các hình ảnh (tức là tốc độ hoạt ảnh). 1 × 5 cho biết 5 khung hình mỗi giây.loop
- cho biết số lần lặp được yêu cầu. 0 có nghĩa là vô hạn.
Phần kết luận
Tại thời điểm này, bạn nên có một hình ảnh động được xây dựng tùy chỉnh, sẵn sàng chia sẻ với reddit, google +, facebook, bbm và hơn thế nữa. Thử nghiệm với tốc độ khung hình trên ffmpeg (-r) và chuyển đổi (-delay) để đạt được hoạt ảnh mượt mà nhất ở kích thước tệp nhỏ nhất. Giờ đây, bạn có thể tạo hình ảnh gif động của các đoạn video yêu thích của mình.