Trang thumbnail (contact sheet) là file hình ảnh điển hình chứa khung hình từ video. Trang thumbnail video xuất phát từ trang ảnh in (photo sheets) phổ biến hơn khoảng một thập kỷ trước khi mọi người vẫn in ảnh. Giống như trang ảnh in đóng vai trò xem trước ảnh trong phim và thẻ SD thời đó, trang thumbnail ở đây hoạt động như bản xem trước file video. Chúng dễ dàng và nhanh hơn lật qua để kiểm tra nội dung và chất lượng video thay vì mở trong trình phát media để "quét" từ đầu đến cuối.
May mắn thay, bạn không phải trích xuất khung hình cụ thể từ video rồi sắp xếp thủ công thành một hình ảnh. Bạn có thể dùng công cụ dễ dàng tạo trang thumbnail từ video. Chúng tôi chỉ cho bạn hai cách làm trong Linux.
Dùng Gnome Videos
Nếu dùng Gnome, trình phát media mặc định, tên "Videos" (thực tế "Gnome Videos", vì nó thuộc bộ công cụ Gnome và gần đây còn gọi riêng là "Totem"), cung cấp tùy chọn tạo trang thumbnail dễ dàng.
Để dùng, chạy chương trình.
Mở video bạn muốn tạo trang thumbnail, sau đó từ menu ứng dụng, chọn "Create Screenshot Gallery ..." (Tạo thư viện ảnh chụp màn hình ...).
Cửa sổ bật lên cung cấp tùy chọn cơ bản về trang thumbnail. Bạn thay đổi chiều rộng mỗi thumbnail, và để chương trình tự chọn số ảnh chụp hoặc tự chọn số lượng.
Sau đó, chỉ cần nhập tên file trang hình ảnh ở giữa trên cửa sổ và nhấp Save (Lưu) ở góc trên phải.
File tạo ra hữu ích, nhưng nếu không trông như mong đợi, không có gì làm thêm. Để kiểm soát kết quả hơn, phải dùng công cụ cung cấp tùy chọn nhiều hơn.
Dùng FFMPEG
FFMPEG là công cụ dòng lệnh phức tạp bạn dùng làm việc với video nhiều cách. Một trong đó là tạo trang thumbnail. Để làm vậy, phải tạo lệnh hơi phức tạp. Trông giống như:
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
-ssxác định độ lệch thời gian từ đầu file video. Hầu hết video bắt đầu bằng dàn mở đầu, và hầu hết trường hợp không hữu ích có thumbnail của đó. Với tùy chọn này, chúng ta chỉ dẫn FFMPEG bỏ qua "X" giây từ đầu video để bỏ qua phần mở đầu có thể không hấp dẫn.-iđặt file đầu vào FFMPEG kéo thumbnail.-framesxác định số khung hình sẽ ghi.-q:vđặt chất lượng nén file hình ảnh tạo ra.
Đối với phần thú vị nhưng phức tạp nhất của lệnh, phải mở rộng một chút vì nó làm ba việc cùng lúc. Chúng ta nói về phần này:
-vf "select=not(mod(n\,3000)),scale=320:240,tile=4x3"
-vf đầu chỉ dẫn FFMPEG dùng bộ lọc video. Select=not(mod(n\,3000)) chịu trách nhiệm khung hình chọn trong hình ảnh cuối. Nó chia số khung hình hiện tại ("n") với số cung cấp ("3000"). Video đã tới khung 3001? Chia 3001 cho 3000 ra 1, khung này sẽ là khung đầu trong trang hình ảnh đầu. Đã tới khung 6001? Vì 6001/3000 cho 2, đây là khung thứ hai, và cứ thế. Do đó, giảm số này tăng tần suất chọn khung và ngược lại.
Với phần scale=320:240, đặt kích thước mỗi thumbnail trong trang thumbnail cuối. Để kết quả tốt, nên là phân số độ phân giải video gốc, tính đến tỷ lệ khung hình.
Cuối cùng, phần tile=4x3 xác định cách thumbnail sắp xếp trong mỗi trang.
Có lẽ bạn nhận ra tên file cuối, cho file hình ảnh tạo ra, trông như:
filename_%03d.jpg
Phần %03d nói nếu FFMPEG chọn nhiều khung hơn vừa một trang, dựa trên thiết lập tile, nó tạo thêm trang hình ảnh với tên file đánh số. Giảm "n\,NUMBER" của select hoặc số tile mỗi trang, nhiều file hơn sẽ tạo ra và ngược lại.
Tất nhiên, cũng phụ thuộc độ dài file video. Chỉ là toán học: sử thi 3,5 giờ như "Chúa Tể Những Chiếc Nhẫn" có hàng trăm nghìn khung hình hơn short của Pixar.
Nếu muốn kiểm soát số file trang hình ảnh FFMPEG tạo, dùng phương trình:
Tổng Khung Hình Video / Số Tile Trong Trang / Số Trang Hình Ảnh Bạn Muốn
Dùng giá trị từ phần "mod(n\,RESULTS)" của lệnh.
Nếu thích hình ảnh riêng lẻ thay vì trang thumbnail, FFMPEG cũng cho phép tách video thành hình ảnh riêng lẻ.
Bạn tạo trang thumbnail từ video bằng cách nào khác?