Công cụ nhanh để tạo phòng trưng bày video thu nhỏ cho dòng lệnh


14

Tôi sử dụng gframecatcher để tạo các phòng trưng bày video thu nhỏ, tức là một cái gì đó như thế này:

nhập mô tả hình ảnh ở đây

Tuy nhiên đây là một công cụ GUI và tôi muốn tạo đệ quy một bộ sưu tập cho mỗi video trong cấu trúc thư mục, vì vậy tôi đang tìm kiếm một công cụ dòng lệnh nhanh để làm điều này.

Câu trả lời:


28

Kéo ra các hình ảnh chụp (có độ cao 100 pixel và giữ tỷ lệ khung hình), tốc độ ( -r) là mỗi giây (điều này mang lại một khung hình cứ sau ~ 5 phút), điều này cũng thêm dấu thời gian vào hình ảnh đầu ra.

ffmpeg  -i MOVIE.mp4 -r 0.0033 -vf scale=-1:120 -vcodec png capture-%002d.png

Sau đó sử dụng ImageMagickđể xây dựng hình ảnh bộ sưu tập của bạn:

montage -title "Movie Name\nSubtitle" -geometry +4+4 capture*.png output.png

7
Bạn có thể sử dụng phân số cho tỷ lệ ( -r). Điều này làm cho nó dễ dàng và chính xác hơn để xác định thời gian. 5 phút = 300 giây ffmpeg -i MOVIE.mp4 -r 1/300 -vf scale=-1:120 -vcodec png capture-%02d.png.
DutGRIFF

avconvhoạt động theo cùng một cách, trong trường hợp bạn không có ffmpegsẵn (một số bản phát hành Ubuntu).
Ken Sharp

2
Điều này hoạt động, nhưng yêu cầu hệ thống ống nước thông qua toàn bộ tập tin video. superuser.com/questions/538112/ cấp cung cấp một số ví dụ cố gắng tìm các hình thu nhỏ có ý nghĩa, cũng như tránh phải ngồi và xử lý toàn bộ video để có được một vài khung hình.
Skrylar

Điều này không thêm dấu thời gian vào hình ảnh.
felwithe

Làm thế nào bạn sẽ làm điều này hàng loạt cho một loạt các video trong một thư mục?
Paul Jones

12

Tôi thích sử dụng một tập lệnh bash dòng lệnh unix dễ sử dụng có tên là VCS - Video Contact Sheet. Trang chính thức của họ: http://p.outlyer.net/vcs/

Nó dễ sử dụng hơn rất nhiều so với GUI

'' Đó là một tập lệnh bash có nghĩa là tạo các trang liên hệ video (xem trước) hay còn gọi là hình thu nhỏ hoặc xem trước của video. Bất kỳ video nào được hỗ trợ bởi mplayer và ffmpeg đều có thể được sử dụng bởi tập lệnh này. '' Bạn sẽ cần phải có ffmpeghoặcmplayer cài đặt cài đặt trên hệ thống của mình.

Sử dụng:

vcs input-filename -U0 -i 1m -c 3 -H 200 -a 300/200 -o save-filename.jpg

Cách hoạt động của lệnh

Chỉnh sửa tên tệp đầu vào thành tên tệp video của bạn!

  • -U0(không có tên trong phần chân trang - hoặc nếu không nó sẽ hiển thị tên máy chủ - lưu ý đây không phải là chữ cái O)

  • -i 1m(đặt khoảng thời gian chụp trong vài phút - trong trường hợp này là mỗi phút - bạn cũng có thể sử dụng -nthay vào đó, đặt số lượng ảnh chụp chẳng hạn -n 21sẽ tạo ra 21 hình ảnh, nhưng không sử dụng cả hai)

  • -c đặt số lượng cột (ở đây là 3 cột)

  • -H 200 -a 300/200 (đặt kích thước và khía cạnh để tệp không quá lớn - dường như bạn phải làm cả hai)

  • -o filename.jpg (sử dụng .jpg làm mặc định .pnglà quá lớn - và thay đổi tên tệp thành một trong những lựa chọn của bạn!)


7

Cái này có vẻ phù hợp với hóa đơn , nó là nguồn mở và miễn phí và thậm chí hoạt động trên Windows :)

Nó thậm chí còn có những thứ tiên tiến, như thay vì mù quáng chọn bất kỳ khung hình nào trong khoảng thời gian cụ thể, nó có thể chọn những khung hình đủ gần nhưng trông không quá mờ, vì vậy thay vì làm điều này:

ảnh chụp màn hình

Bạn có thể truyền cho nó một tham số ( -D6) để nó thực hiện điều này:

ảnh chụp màn hình tốt hơn

Thêm vào đó tôi thực sự thích không có viền, để hình ảnh có thể lớn hơn một chút.


7

Có một giải pháp từ diễn đàn ffmpeg.

Để tạo nhiều ảnh chụp màn hình và đặt chúng vào một tệp hình ảnh duy nhất (tạo ô), bạn có thể sử dụng bộ lọc video gạch của FFmpeg, như thế này:

ffmpeg -ss 00:00:10 -i movie.avi -vf 'select=not(mod(n\,1000)),scale=320:240,tile=2x3' out.png

Điều đó sẽ tìm kiếm 10 giây trong phim, chọn mỗi khung hình thứ 1000, chia tỷ lệ thành 320x240 pixel và tạo các ô 2x3 trong hình ảnh đầu ra out.png.

Bài đăng gốc tại đây - http://ffmpeg.gusari.org/viewtopic.php?f=25&t=597


Ngoài ra, ffmpeg dường như hỗ trợ "crop" với cùng một cú pháp.
một số ý tưởng

4

Đây là cách tôi xử lý một trang liên hệ đơn giản bằng AWS EC2, từ máy mac của tôi.

Bước # 1: Tạo sơ đồ EC2 tại Amazon Web Services

Tôi đã sử dụng:

Amazon Linux AMI 2015.03.1 (HVM), SSD Volume Type - ami-0d4cfd66
t2.medium

Bước # 2: Cấu hình thể hiện

Đây là tất cả chạy từ mac của tôi để thuận tiện, nhưng bạn cũng có thể chỉ chạy các lệnh "sudu su ..." từ dòng lệnh EC2.

ssh -i "/local/path/to/key/your_ec2_key.pem" ec2-user@11.22.33.44 "sudo su root; curl -O http://ffmpeg.gusari.org/static/64bit/ffmpeg.static.64bit.latest.tar.gz"
ssh -i "/local/path/to/key/your_ec2_key.pem" ec2-user@11.22.33.44 "sudo su root; gunzip ffmpeg.static.64bit.latest.tar.gz"
ssh -i "/local/path/to/key/your_ec2_key.pem" ec2-user@11.22.33.44 "sudo su root; tar -xf ffmpeg.static.64bit.latest.tar"

Thay thế 11,22.33.44 bằng IP EC2 của bạn.

Bước # 3: Xử lý video

Gửi video:

rsync -Pav -e 'ssh -i /local/path/to/key/your_ec2_key.pem pem' /Users/mdouma/Desktop/myVideo.mov ec2-user@11.22.33.44:/home/ec2-user/

Xử lý nó thành một tờ liên hệ:

ssh -i "/local/path/to/key/your_ec2_key.pem" ec2-user@11.22.33.44 "rm -f out.png ; ./ffmpeg -ss 00:00:00 -i myVideo.mov -vf 'select=not(mod(n\,1)),scale=113:111,crop=111:111,tile=18x36' out.png"

Thay đổi / Người dùng / mdouma thành gốc cục bộ của bạn Thay đổi ", 1" thành một số khác, ví dụ: ", 7", nếu bạn chỉ muốn mỗi khung hình thứ 7. Thay đổi 111 thành bất kỳ kích thước nào bạn muốn

Sao chép lại vào mac của tôi:

rsync -Pav -e 'ssh -i /local/path/to/key/your_ec2_key.pem'  ec2-user@11.22.33.44:/home/ec2-user/out.png  /Users/mdouma/Desktop/out.png
open /Users/mdouma/Desktop/out.png

Đây là một mẹo tuyệt vời. Lưu ý mặc dù đó sudo sulà vô mục đích.
Ken Sharp

2
Tại sao bạn gửi cái này đến ec2? Tại sao không chạy nó trên máy Mac của bạn? các tệp video có thể là GB lớn ...
kiểm tra vào

4

Công cụ này đã giúp tôi (2019-02) - và nó được duy trì. Nhiều tùy chọn - lưới, chất lượng, phông chữ, màu sắc, đường viền, khoảng, ...

https://github.com/amietn/vcsi

Tạo các tờ liên lạc video. Một tờ liên lạc video là một hình ảnh bao gồm các hình thu nhỏ quay video được sắp xếp trên một lưới.

Bạn chỉ cần ffmpeg và python.


Điều này là rất tốt - cảm ơn bạn!
Tro


1

Totem - trình phát video mặc định cho 14.04 và một số phiên bản Ubuntu trước đó - có tùy chọn menu với các tùy chọn đơn giản (trong menu Chỉnh sửa, "Tạo Thư viện Ảnh chụp màn hình ..."). Ngoài ra còn có một dòng lệnh tương đương (ish) được gọi là "totem-video-Thumber" có trang man cho bạn biết cách sử dụng nó; Tôi đã viết một tập lệnh bash đơn giản sử dụng đầu ra từ lệnh find (chú ý không tách các tệp có dấu cách trong tên) để tự động tạo thư viện ảnh chụp màn hình (hoặc bảng liên hệ như được đề cập ở trên) cho bất kỳ tệp nào ở trên kích thước trong một thư mục chưa có.

Tôi có thể tải nó lên github của mình dưới ~ jgbreezer nếu có ai đó thích săn lùng nó. Mặc dù các giải pháp sử dụng ffmpeg và những thứ khác có thể linh hoạt và đáng tin cậy hơn; Tôi dường như nhận được kết quả lỗi từ lệnh totem về việc không tìm thấy các khung nhất định nhưng dường như nó vẫn hoạt động trong hầu hết thời gian.


0

Tôi muốn điều tương tự và kết thúc bằng cách sử dụng ffmpeg và fantemagick. KHÔNG 'nhanh' IMHO. Sau đó tìm thấy một tập lệnh bash có tên SlickSlice (cập nhật lần cuối năm 2008 nhưng hoạt động hoàn hảo như ngày hôm qua). Cài đặt nó và tùy chỉnh nó theo ý thích của tôi bằng cách sử dụng tệp cấu hình và chính tập lệnh. Kịch bản sử dụng ImageMagick và MPlayer.

tôi đã làm một chi tiết cách làm và tùy chỉnh sau khi tôi sử dụng thành công. Sau khi cài đặt thành công, bạn có thể tạo hình thu nhỏ dòng thời gian video bằng lệnh đơn giản:
slickslice -x "InputFile.mp4"(mặc định 4 cột x 15 hàng) hoặc
slickslice -x "InputFile.mp4" -S 6x10(cho 6 cột x 10 hàng).

Nó xuất ra như SLICKSLICED_InputFile.mp4.jpeg và tôi đã tùy chỉnh nó để sản xuất InputFile.mp4-screen.jpegbằng cách chỉnh sửa tập lệnh bash.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.