2012-09-11 48 views
5

Tôi đang cố gắng tạo hoạt ảnh cho một loạt tệp jpg bằng avconv. Dựa trên nhiều ví dụ, tôi đang cố gắng sử dụng% d.jpg để chỉ định tệp. Hoặc% 05d.jpg. Tuy nhiên, tôi nhận được:Ký tự đại diện cho hình ảnh liên tiếp

avconv -i %d.jpg a.avi 
avconv version 0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers built on Jun 12 2012 16:37:58 with gcc 4.6.3 
%d.jpg: No such file or directory 

Dưới đây là một ảnh của danh sách thư mục của tôi:

10380.jpg 
10390.jpg 
10400.jpg 
1040.jpg 
10410.jpg 
10420.jpg 
10430.jpg 
10440.jpg 

Có JPEG từ 00000.jpg 14400.jpg để

Tôi không thực sự hiểu rằng hệ thống ký tự đại diện, nhưng đó là những gì trong ví dụ.

(lưu ý: Tôi tagged nó ffmpeg vì một thẻ cho avconv không tồn tại, và avconv thay ffmpeg)

Cập nhật tôi cập nhật các câu hỏi dựa trên các câu trả lời dưới đây bởi @ av501.

Để bắt đầu, tôi có danh sách tệp png có thứ tự tuần tự bằng 10. Chúng có văn bản trước số nguyên gồm 5 chữ số. Ví dụ:

SkinMattekNutrient_py_00000.png 
SkinMattekNutrient_py_00010.png 
SkinMattekNutrient_py_00020.png 
... 
SkinMattekNutrient_py_10440.png 

Cách chuyển hàng loạt này thành jpg là gì? Tôi cố gắng

convert ... 
SkinMattekNutrient_py_%05d.png %05d.jpg 

convert ... 
SkinMattekNutrient_py_%5d.png %5d.jpg 

Nhưng tôi nhận được:

convert SkinMattekNutrient_py_%05d.png %05d.jpg 
convert: missing an image filename `%05d.jpg' @ error/convert.c/ConvertImageCommand/3011. 

Trả lời

4

Bạn cần phải sử dụng% 5d cho các tập tin của bạn. Nhưng dường như bạn có hai vấn đề:

Để% 5d hoạt động, bạn phải có số có 5 chữ số. [Bạn có 1040.jpg] và cũng liên tiếp. 00000.jpg sau đó 00001.jpg. tên tập tin của bạn dường như nhảy bằng 10

Nếu tất cả chúng đều bội số của 10, sau đó bạn có thể sử dụng% d50.jpg [Nhưng bạn vẫn cần phải sửa chữa 1040.jpg của bạn]

Nếu lệnh dòng làm việc ở đây [tôi đang sử dụng ffmpeg -i% 5d.jpg out.avi và ffmpeg -i% 5d0.jpg out.avi]

+0

Tôi đã cập nhật câu hỏi của mình để đơn giản hơn - chỉ đơn giản là chuyển đổi tệp png thành jpg. Tôi vẫn không thể tìm ra cách sử dụng đúng hệ thống ký tự đại diện. Tôi đã thử tìm kiếm nhưng không thể tìm thấy bất kỳ giải thích nào. Cú pháp chính xác sẽ là gì? Cảm ơn. – abalter

+0

chuyển đổi là một tiện ích khác, phải không? ffmpeg là một cái khác. Tôi đang làm nó bằng cách sử dụng ffmpeg và nó hoạt động tốt ở đây. – av501

+0

Bất kể chương trình nào tôi đang sử dụng, tôi nhận được lỗi không thể tìm thấy tệp. Tôi tự hỏi có gì sai với hệ thống của tôi? Tất cả các ví dụ tôi đã tìm thấy hiển thị cùng một điều. – abalter

4

Dưới đây là một cách để tập tin hình ảnh hàng loạt chuyển đổi trong một vỏ Bash:

for f in *.png; do ffmpeg -i "$f" "${f%.png}.jpg"; done 

Tôi tin rằng kỹ thuật này sẽ hoạt động đối với bất kỳ lệnh nào yêu cầu tệp đầu vào và đầu ra phải được liệt kê riêng biệt . Trong trường hợp của bạn, điều này sẽ là:

for f in *.png; do convert "$f" "${f%.png}.jpg"; done 
Các vấn đề liên quan