2012-10-21 18 views
13

Tôi biết ffmpeg có thể đọc dữ liệu từ stdin thay vì đọc từ đĩa bằng cách sử dụng ffmpeg -i -. Điều này có được hỗ trợ cho tất cả các định dạng tệp không? Nếu không, có danh sách các định dạng tệp nào được hỗ trợ không?ffmpeg: định dạng tệp nào hỗ trợ sử dụng stdin?

+0

Làm cách nào để bạn biết điều đó? Có trong tài liệu không? –

Trả lời

14

Bạn cần chạy ffmpeg -protocols để xác định xem giao thức pipe (đọc và ghi từ stdin và stdout) được hỗ trợ trong phiên bản ffmpeg của bạn và sau đó ffmpeg -formats để xem danh sách các định dạng được hỗ trợ hay không. Trong đoạn trích dưới đây bạn sẽ thấy lưu ý trên đường ống đầu ra rằng nó phải được tìm kiếm cho một số giao thức. Đối với các giao thức đầu vào, nó không có hạn chế như vậy.

Từ man ffmpeg-protocols:

PROTOCOLS

Giao thức được cấu hình yếu tố trong FFmpeg cho phép để truy cập nguồn lực đòi hỏi việc sử dụng một giao thức cụ thể.

Khi bạn định cấu hình bản dựng FFmpeg của mình, tất cả các giao thức được hỗ trợ là được bật theo mặc định. Bạn có thể liệt kê tất cả những người có sẵn bằng cách sử dụng tùy chọn cấu hình --list-protocols.

Bạn có thể vô hiệu hóa tất cả các giao thức sử dụng tùy chọn cấu hình --disable-protocols, và có chọn lọc cho phép một giao thức sử dụng các tùy chọn --enable-protocol=PROTOCOL, hoặc bạn có thể vô hiệu hóa một giao thức cụ thể sử dụng tùy chọn --disable-protocol=PROTOCOL.

Tùy chọn -protocols của các công cụ ff * sẽ hiển thị danh sách các giao thức được hỗ trợ .

Mô tả về các giao thức hiện có sẵn sau đây. ... đường ống
Giao thức truy cập đường ống UNIX.

Cho phép đọc và ghi từ ống UNIX.

Cú pháp được chấp nhận là:

 pipe:[<number>] 

số là số tương ứng với mô tả tập tin của ống (ví dụ 0 cho stdin, stdout 1, 2 cho stderr). Nếu số không phải là được chỉ định, theo mặc định, bộ mô tả tệp stdout sẽ được sử dụng cho viết, stdin để đọc.

Lưu ý rằng một số định dạng (thường là MOV), yêu cầu giao thức đầu ra để có thể tìm kiếm được, vì vậy chúng sẽ thất bại với giao thức đầu ra đường ống.

+0

Cảm ơn, điều đó hoàn toàn phù hợp với yêu cầu của tôi;) –

+14

Trong phiên bản ffmpeg (1.2.1) của tôi là 'ffmpeg -protocols' –