Cách nhập tệp mạng vào ffmpeg


9

Vấn đề của tôi là thế này. Tôi có quyền truy cập vào một máy chủ lưu trữ nhiều tệp video, hầu hết chúng đều rất lớn và không được nén tốt. Tôi dự định tạo một bản sao kích thước nhỏ hơn chất lượng giảm trên những máy này để truy cập tốt hơn.

Vấn đề là máy chủ không có quyền truy cập ftp. Tôi có thể quét các tệp vào máy của mình và sau đó sử dụng ffmpeg để giảm kích thước, nhưng tôi sẽ hết dung lượng nếu tôi sao chép tất cả các tệp cục bộ.

Tôi đang tìm cách nhập trực tiếp tệp mạng vào ffmpeg, bằng cách đó tôi sẽ có thể viết một tập lệnh sẽ qua đêm giúp tôi có tất cả các video ở kích thước giảm.


Bạn nên chỉnh sửa câu hỏi: Vì nó là "XYPro Hiệu": yêu cầu làm Y, khi bạn thực sự muốn làm X. Bạn thực sự muốn nhập tệp mạng từ xa, không phải "sử dụng scp" (Nghe có vẻ như: " Làm thế nào tôi có thể cạo râu bằng cách sử dụng một cái bướu ": nhu cầu thực sự là cạo râu, không thực sự sử dụng một cái bướu ^^) Đừng trộn nhu cầu của bạn với các phương tiện để làm như vậy (để bạn có thể tìm ra phương tiện tốt hơn, sử dụng mọi người thông tin phản hồi!)
Olivier Dulac

Xem câu trả lời của Flup và cpugeniusmv để biết cách làm đúng. Tuy nhiên, nếu bạn có nút cổ chai mạng, sẽ có nghĩa là nén ở phía máy chủ và sau đó chuyển phiên bản nén qua mạng (nếu ffmpeg tồn tại trên máy đó).
orion

Câu trả lời:


10

Bạn có thể sử dụng sshfsđể làm cho các tệp từ xa xuất hiện trong một thư mục trên máy cục bộ.

Bạn không nói những gì bạn đang sử dụng trên máy khách của mình, nhưng điều này được đưa vào từ tài liệu sshfs của Ubuntu :

  1. Cài đặt sshfsgói ( aptitude install sshfs)
  2. Thêm người dùng của bạn vào fusenhóm ( sudo gpasswd -a username fuse)
  3. Gắn kết hệ thống tập tin bằng sshfslệnh

Để sử dụng sshfs, hãy tạo cho mình một thư mục (chúng tôi sẽ gọi đây /mountpoint) và làm

sshfs -o idmap=user remote_user@remote_server:/remote/directory /mountpoint

Các tập tin từ xa sẽ xuất hiện /mountpoint, nhưng trên thực tế vẫn còn trên máy chủ từ xa. Mọi thay đổi bạn thực hiện sẽ được thực hiện từ xa và không cục bộ.

Để ngắt kết nối thư mục, hãy làm

fusermount -u /mountpoint

6

Nếu bạn có quyền truy cập ssh vào hệ thống từ xa, bạn có thể làm một cái gì đó như

ssh server cat path/to/video | ffmpeg -i - [...]

Các -nguyên nhân ffmpeg đọc từ stdin thay vì một tập tin.

Caveat, mặc dù, không phải tất cả các định dạng hỗ trợ đường ống. Xem /programming/12999674/ffmpeg-which-file-formats-support-stdin-usage


Thiết bị video có thể không hỗ trợ kích thước khối được sử dụng bởi 'cat' - nếu bạn gặp lỗi, hãy sử dụng 'nc' thay vì 'cat' - xem thêm stackoverflow.com/a/46362136/1755628
MikeW
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.