Cách tạo thumbnail sheet cho video trong Linux

Thumbnail sheet là các file hình ảnh điển hình có chứa những khung hình từ video. Các thumbnail sheet video bắt nguồn từ những photo sheet, phổ biến trong khoảng một thập kỷ trước, khi mọi người vẫn có thói quen in ảnh ra.

Giống như các photo sheet, đóng vai trò bản xem trước cho những hình ảnh trên film và thẻ SD hồi đó, thumbnail sheet mà bạn thấy ở đây hoạt động như một bản xem trước cho file video. Sẽ dễ dàng và nhanh chóng hơn khi lướt qua để kiểm tra nội dung và chất lượng video, thay vì mở nó trong một trình phát media và xem từ đầu đến cuối.

Rất may, bạn không phải trích xuất các khung hình cụ thể từ video của mình và sau đó sắp xếp chúng theo cách thủ công. Bạn có thể sử dụng các công cụ để dễ dàng tạo thumbnail sheet từ video. Quantrimang.com sẽ chỉ cho bạn 2 cách làm như vậy với Linux trong bài viết này.

Sử dụng Gnome Videos

Nếu bạn đang sử dụng Gnome, trình phát media mặc định của nó, được đặt tên là Videos, (hay Gnome Videos, vì nó là một phần của bộ công cụ Gnome và được biết đến gần đây với tên gọi Totem), cung cấp một tùy chọn dễ dàng tạo các thumbnail sheet.

Để sử dụng nó, hãy chạy chương trình.

Chạy Gnome Videos
Chạy Gnome Videos

Mở video bạn muốn tạo một số thumbnail sheet từ đó, sau đó từ menu ứng dụng, hãy chọn Create Screenshot Gallery …

Cửa sổ xuất hiện sẽ cung cấp cho bạn một số tùy chọn cơ bản về thumbnail sheet. Bạn có thể thay đổi độ rộng của mỗi hình thu nhỏ và để chương trình tự động chọn số lượng ảnh chụp màn hình hoặc đưa ra số lượng bạn muốn.

Sau đó, bạn chỉ phải nhập tên cho file hình ảnh ở giữa trên cùng của cửa sổ và nhấp vào Save ở trên cùng bên phải.

Các file được tạo ra rất hữu ích, nhưng nếu nó không giống như bạn mong đợi, thì bạn không thể làm được gì nhiều hơn. Để kiểm soát nhiều hơn kết quả, bạn sẽ phải sử dụng một công cụ khác cung cấp nhiều tùy chọn hơn.

Các file được tạo ra rất hữu ích
Các file được tạo ra rất hữu ích

Sử dụng FFMPEG

FFMPEG là một công cụ dòng lệnh rất phức tạp mà bạn có thể sử dụng để làm việc với các video của mình theo nhiều cách. Một trong số đó là việc tạo ra các thumbnail sheet. Mặc dù, để làm điều đó, bạn phải tạo một lệnh hơi phức tạp. Lệnh sẽ trông giống như thế này:

ffmpeg -ss 3 -i "/path/to/video/file.mp4" -frames 5 -vf "select=not(mod(n\,3000)),scale=320:240,tile=4x3" -vsync vfr -q:v 10 image-sheet-filename_%03d.jpg
  • -ss xác định thời gian được bỏ qua từ đầu file video. Hầu hết các video bắt đầu bằng một chuỗi tiêu đề và trong hầu hết các trường hợp, không hữu ích gì khi có hình thu nhỏ của phần này cả. Với switch này, bạn sẽ hướng dẫn FFMPEG bỏ qua X giây từ đầu video để bỏ qua phần giới thiệu.
  • -i đặt file đầu vào mà FFMPEG sẽ lấy hình thu nhỏ.
  • -frames xác định số lượng khung hình sẽ được ghi lại.
  • -q:v đặt chất lượng nén của các file hình ảnh được tạo.

Đối với phần thú vị nhưng cũng phức tạp nhất của lệnh này, ta sẽ phải mở rộng một chút, vì nó thực hiện 3 điều cùng một lúc. Thứ mà ta đang nói đến là:

-vf "select=not(mod(n\,3000)),scale=320:240,tile=4x3"

-vf ở đầu hướng dẫn FFMPEG sử dụng bộ lọc video. Select=not(mod(n\,3000)) chịu trách nhiệm cho các khung hình đã chọn trong những hình ảnh cuối cùng. Nó chia số của khung hình hiện tại (“n”) với số được cung cấp (“3000”).

Video đạt đến khung hình 3001? Nếu chia 3001 với số 3000, ta sẽ được 1, vì vậy khung hình này sẽ là khung đầu tiên trong image sheet được tạo ra. Video đạt đến khung hình 6001? Vì 6001/3000 cho kết quả là 2, đây sẽ là khung hình thứ hai, v.v... Do đó, bằng cách giảm con số này, bạn tăng tần suất chọn khung và ngược lại.

Phần scale=320:240 đặt kích thước của từng hình thu nhỏ trong thumbnail sheet cuối cùng
Phần scale=320:240 đặt kích thước của từng hình thu nhỏ trong thumbnail sheet cuối cùng

Với phần scale=320:240, ta đặt kích thước của từng hình thu nhỏ trong thumbnail sheet cuối cùng.

Cuối cùng, phần tile=4x3 của lệnh xác định cách sắp xếp các hình thu nhỏ trong mỗi trang.

Có thể bạn nhận thấy rằng tên file cuối cùng cho file hình ảnh được tạo ra, trông như thế này:

filename_%03d.jpg

Phần %03d cho biết rằng nếu FFMPEG kết thúc việc chọn nhiều khung hơn mức có thể hiển thị vừa trong một trang, dựa trên thiết lập tiêu đề, nó sẽ tạo ra nhiều image sheet hơn với tên file được đánh số. Bằng cách giảm số n\,NUMBER hoặc số ô mỗi trang, nhiều file sẽ được tạo hơn và ngược lại.

Bằng cách giảm số n\,NUMBER hoặc số ô mỗi trang, nhiều file sẽ được tạo hơn và ngược lại
Bằng cách giảm số n\,NUMBER hoặc số ô mỗi trang, nhiều file sẽ được tạo hơn và ngược lại

Tất nhiên, điều này cũng phụ thuộc vào độ dài của file video. Nếu bạn muốn kiểm soát số lượng file hình ảnh FFMPEG sẽ tạo ra, hãy sử dụng phương trình sau:

Tổng số khung hình trong video/Số lượng ô trong một trang/Số lượng image sheet bạn muốn

Sử dụng giá trị từ phần mod(n\,RESULTS) của lệnh.

Nếu bạn muốn có các hình ảnh riêng lẻ hơn là một thumbnail sheet, FFMPEG cũng cho phép bạn “dịch” ngược video thành các hình ảnh riêng lẻ.

Thứ Hai, 02/03/2020 11:08
53 👨 81