Làm cách nào để tạo video timelapse từ bộ sưu tập ảnh trong Linux?


19

Tôi muốn tạo một timelapse từ bộ sưu tập hình ảnh, trong Ubuntu. Tôi muốn tạo video HD và lý tưởng hơn là thêm nhạc phim.


Tôi chưa thấy điều đó. Tôi có thể xóa câu hỏi này và gửi câu trả lời của tôi ở đó. Ổn chứ?
Frederico Schardong

Tôi thậm chí không chắc chắn nếu đây là trang web stackexchange tốt nhất cho việc này. Tôi chỉ muốn chia sẻ những gì tôi đã làm.
Frederico Schardong

Có một câu hỏi tương tự trên Askubfox.com . Các câu trả lời chủ yếu được đề cập ở đây tại thời điểm viết, nhưng điều đó có thể thay đổi trong tương lai, tất nhiên.
Anarcat

Câu trả lời:


11

Ffmpeg sẽ làm điều đó. Nếu bạn có hình ảnh img001.jpg, img002.jpg, img003.jpg, ...thì trên dòng lệnh làm:

ffmpeg -i img*.jpg output.mpeg

Có nhiều lựa chọn hơn được đưa ra trong ffmpeg --helphoặc trang man, hoặc web. Những thứ này cho phép kiểm soát tốc độ khung hình và định dạng đầu ra.


Sử dụng điều này mang lại một lỗi cho tôi, vì nó xem xét .jpgcác tệp sau như tệp đầu ra. Tôi nhận được File 'DSCF6134.JPG' already exists. Overwrite ? [y/N]- không quá tuyệt vời. Giải pháp của tôi là tạo một danh sách tập tin với \ls *.JPG | sed "s/^/file '/;s/$/'/" > files.txtvà sau đó tải nó với ffmpeg -f concat -i files.txt output.mpeg.
Anarcat

Với các phiên bản ffmpeg khác, phiên bản sau hoạt động mà không cố ghi đè hình ảnh:ffmpeg -pattern_type glob -i "picture*.jpg" output.mpeg
Patrick R.

9

Đầu tiên chúng tôi đổi tên tất cả các tệp * .JPG dựa trên ngày tạo của chúng. Đôi khi máy ảnh thay đổi tên tệp hoặc chỉ đặt hàng chúng không phải là thứ chúng ta muốn. Tuy nhiên, đổi tên chúng theo ngày tạo luôn hoạt động:

jhead -n%Y%m%d-%H%M%S *.JPG

Sau đó, chúng tôi đặt danh sách này trong một tập tin:

ls -1tr | grep -v files.txt > files.txt

Và sau đó sử dụng mencoderđể tạo AVIvideo bằng 20 khung hình / giây. Lưu ý rằng điều này sẽ tạo ra một tệp video khổng lồ, thường có cùng kích thước của tất cả các hình ảnh được tóm tắt.

mencoder -nosound -noskip -oac copy -ovc copy -o output.avi -mf fps=20 'mf://@files.txt'

Tôi thường chụp ảnh cho timelapse với độ phân giải thấp nhất của máy ảnh của tôi (5 MP), có tỷ lệ aspec 4: 3. Để tạo video 1080p phù hợp, trước tiên, hình ảnh được chỉnh lại thành 1920 pixel chiều rộng và sau đó tôi cắt nó thành 1080 chiều cao. Bằng cách này, tôi không thay đổi nội dung của ảnh, chỉ cắt xén:

ffmpeg -i output.avi -y -sameq -vf scale=1920:1440,crop=1920:1080 output-final.avi

Lý do tôi sử dụng mencoder để ghép các bức ảnh lại với nhau là vì tôi có một segmentation faultffmpeg.


Đối với segfault, sẽ rất hữu ích khi biết phiên bản ffmpeg của bạn.
Unapiedra

Nếu giống như tôi, bạn đã quay trong 3: 2 (ảnh tĩnh D750 của tôi là 6016x4016) và cần nó trong 16: 9 (đối với video 4k) 3840x2160, bạn có thể sử dụng FFMPEG để Pillerbox video và đệm các đường xe điện màu đen ở hai bên bằng lệnh này - ffmpeg -i output.avi -qscale 0 -vf "scale = 3840: 2160: force_origen_aspect_ratio = giảm, pad = 3840: 2160: (ow-iw) / 2: (oh-ih) / 2" output-Final.avi - Video sẽ lớn hơn nhưng không giảm chất lượng vì điều này bị hạ thấp
Rob

trong ffmpeglệnh của bạn , -sameqtùy chọn bây giờ được thay thế bằng-qscale 0
transang

3

Blender là một giải pháp tốt nếu bạn đang xử lý timelapse chuyển động (hyperlapse) hoặc cảnh quay không ổn định. Nó có khả năng theo dõi chuyển động để bạn có thể chọn một điểm cố định để theo dõi trong suốt thời gian. Bạn cũng có thể khắc phục các sự cố xoay.



0

Bạn có thể sử dụng mencoder. Các tùy chọn khá khám phá:

  • liệt kê tất cả các tập tin hình ảnh của bạn.

Nếu tất cả chúng đều nằm trong thư mục curent với các tên được đặt hàng và bạn muốn danh sách trong tệp /tmp/files.txt:

ls -1 *jpg > /tmp/files.txt

  • Sử dụng mencoder với tùy chọn thích hợp.

Nếu bạn muốn tệp đầu ra là /tmp/test.avi với 30 khung hình / giây:

mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4 -o /tmp/test.avi -mf type=jpeg:fps=30 mf://@/tmp/files.txt


0

Kdenlive cũng có thể tạo các bảng thời gian bằng cách sử dụng Add Slideshow Clipmenu, như được giải thích trong hướng dẫn này .

Theo cùng một trang web , Openshot có chức năng tương tự nhưng không khuyến nghị sử dụng vì nó "quá lỗi". Tuy nhiên, nếu đó là trình chỉnh sửa video ưa thích của bạn, bạn sẽ rất vui khi biết mình chỉ cần kéo và thả một chuỗi các tệp có tên đúng (001.jpg đến NNN.jpg) vào cửa sổ Openshot để nhập chúng dưới dạng timelapse.


Hướng dẫn đó là từ năm 2014. OpenShot đã chứng minh rất nhiều trong vài năm qua, giờ đây nó đáng tin cậy hơn rất nhiều.
vclaw
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.