Làm cách nào tôi có thể trích xuất một hình ảnh từ một thời điểm cụ thể của video trong Xubfox 16.04?


8

Tôi đang tìm kiếm một tùy chọn dòng lệnh.

Ví dụ: nếu tôi có video sample-video.mp4và tôi muốn tạo tệp hình ảnh sample-image.jpgtừ video tại thời điểm 00:00:26, tôi nên đưa ra lệnh nào?

Ngoài ra, sẽ rất hữu ích nếu bạn có thể giải thích chi tiết chức năng của mọi đối số của lệnh là gì.


2
Theo câu hỏi này và câu trả lời của nó ffmpegdường như hỗ trợ tên tệp cho đầu ra.
IQV

Câu trả lời:


8

Bạn có thể sử dụng mplayer(từ gói mplayer, không được cài đặt theo mặc định):

mplayer -vo jpeg -ss 00:00:26 -frames 1 sample-video.mp4

Điều này sẽ tạo ra các tập tin 00000001.jpgđể bạn phải đổi tên nó. Theo như tôi biết thì không có cách nào để chỉ định tên tệp.

-vo jpegcó nghĩa là bạn muốn đầu ra JPEG, -ss 00:00:26tìm đến vị trí đã cho, -frames 1nghĩa là xử lý một khung hình rồi thoát.


Lợi thế của việc có nhiều hơn 1 khung hình là gì? Đó sẽ là những bản sao hoặc mỗi khung hình sẽ khác nhau trong một giây?
Sonevol

Hình ảnh được tạo từ nhiều khung hình sẽ khác nhau bởi các phân số của một giây. Giá trị chính xác phụ thuộc vào video.
Florian Diesch

5
@Sonevol Khung chính xác lúc 0:00:26 có thể không chính xác như bạn muốn. Bạn có thể muốn lấy ~ 50 khung hình trong khoảng từ 0:00:25 đến 0:00:27 (hoặc thậm chí chỉ 3-4 khung hình xung quanh mốc 0:00:26) và sau đó duyệt qua chúng để chọn khung hình tốt nhất.
xDaizu

1
@FlorianDiesch Cũng có thể xuất ra png với một cái gì đó như: -vo png:z=9với cài đặt -z chỉ định mức nén. Đối với jpeg bạn cũng có thể thêm vào một cài đặt chất lượng : -vo jpeg:quality=100. Nhưng câu trả lời của bạn là tuyệt vời như nó đã có :)
andrew.46

13

Bạn có thể sử dụng ffmpeg

ffmpeg -loglevel quiet -ss 26 -i sample-video.mp4  -t 1 -f image2 anyfilename.jpeg
  • -loglevel đặt logoutput thành im lặng vì ffmpeg rất hay nói
  • -ss là tìm kiếm (tính bằng giây, tức là nơi bạn muốn chụp ảnh nhanh)
  • -i tập tin video đầu vào
  • -t khung thời gian của ảnh chụp nhanh (tính bằng giây)
  • -f filetype

Bạn cũng có thể chơi xung quanh với các tùy chọn, như chất lượng điều khiển của đầu ra -q:v <linear integer 1-10>hoặc độ phân giải jpeg -s 480x300.

Một số ý tưởng khác ở đây


Phương pháp VLC

cvlc sample-video.mp4 --start-time=26 --run-time=1 --rate=1 --video-filter=scene --vout=dummy --aout=dummy  --scene-ratio=24 --scene-prefix=sample-image --scene-replace vlc://quit
  • cvlc - vì dòng lệnh của nó và chúng tôi không muốn bất kỳ cửa sổ nào mở. Ngoài ra, điều này có nghĩa là chúng ta có thể chạy nó mà không cần X11.

  • --start-time = 26 - là vị trí chính xác của ảnh chụp nhanh tính bằng giây

  • --run-time = 1 - thời gian video sẽ "phát" trong vài giây. Chúng tôi chơi nó trong một giây để tạo ảnh chụp màn hình của giây này
  • --rate = 1 khi chụp ảnh màn hình. Điều này về cơ bản có nghĩa là "mỗi giây" và rất hữu ích, nếu bạn có các tệp dài hơn, để chụp ảnh màn hình cứ sau 60 giây hoặc cứ sau 5 phút
  • --video-filter = cảnh nói với VLC rằng chúng tôi muốn chụp ảnh màn hình
  • --vout = dummy không có đầu ra cho video trên X11, chúng tôi không cần nó
  • --aout = dummy không có đầu ra cho âm thanh, chúng tôi không cần nó
  • --scene-ratio = 24 chúng tôi nói với VLC rằng có khoảng 24 khung hình mỗi giây
  • --scene-prefix = sample-image tên tệp của ảnh chụp màn hình của bạn
  • --scene-thay thế thay thế bất kỳ tệp nào được gọi như ảnh chụp màn hình sample-image.pngcủa bạn với ảnh chụp màn hình hiện tại của bạn. Nếu bạn bỏ qua phần này, VLC sẽ bắt đầu đánh số ảnh chụp màn hình
  • vlc: // thoát khỏi vlc sau khi chúng ta kết thúc

Hoàn thành tài liệu ở đây


Bạn có ý nghĩa gì khi trò chuyện? Và tôi muốn một bức ảnh chụp vào giây thứ 26. Vậy tại sao chỉ định khung thời gian bằng -t. Tôi đang chụp ảnh không phải video.
Sonevol

3
"Chatty" vì ffmpeg in hơn 40 dòng đầu ra nhật ký bằng lệnh này, như phiên bản hiện tại, loại thiết lập và thông tin về tệp video đầu vào - không thú vị đối với bạn. Đối với mục đích của bạn, bạn có thể bỏ qua "-t 1". Có vẻ mặc định là một giây hoặc một phần nhỏ, điều này tốt cho ảnh chụp màn hình. Sự khác biệt tốt đẹp là khả năng xác định tên tệp đầu ra và điều chỉnh chất lượng / độ phân giải, v.v.
Robert Riedl
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.