![ffmpeg에 네트워크 파일을 입력하는 방법](https://rvso.com/image/52089/ffmpeg%EC%97%90%20%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%9E%85%EB%A0%A5%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
내 문제는 이것이다. 나는 많은 비디오 파일을 호스팅하는 서버에 액세스할 수 있는데, 대부분은 매우 크고 압축이 잘 되지 않습니다. 더 나은 액세스를 위해 로컬 컴퓨터에 품질이 낮은 작은 크기의 복사본을 만들려고 합니다.
문제는 서버에 FTP 액세스가 없다는 것입니다. 파일을 내 컴퓨터로 scp한 다음 ffmpeg를 사용하여 크기를 줄일 수 있지만 모든 파일을 로컬로 복사하면 공간이 부족해집니다.
네트워크 파일을 ffmpeg에 직접 입력하는 방법을 찾고 있습니다. 그렇게 하면 밤새 모든 비디오를 축소된 크기로 가져오는 스크립트를 작성할 수 있습니다.
답변1
를 사용하면 sshfs
원격 파일이 로컬 시스템의 디렉터리에 표시되도록 할 수 있습니다.
클라이언트에서 어떤 배포판을 사용하고 있는지는 밝히지 않았지만 이는 다음에서 발췌한 것입니다.우분투 sshfs 문서:
- 패키지 설치
sshfs
(aptitude install sshfs
) fuse
그룹(sudo gpasswd -a username fuse
) 에 사용자를 추가하세요 .sshfs
다음 명령 을 사용하여 파일 시스템을 마운트합니다.
를 사용하려면 sshfs
디렉터리를 만들고(이것을 이라고 함 /mountpoint
) 다음을 수행합니다.
sshfs -o idmap=user remote_user@remote_server:/remote/directory /mountpoint
이제 원격 파일이 에 표시되지만 /mountpoint
실제로는 여전히 원격 서버에 있습니다. 모든 변경 사항은 로컬이 아닌 원격으로 적용됩니다.
디렉토리를 마운트 해제하려면 다음을 수행하십시오.
fusermount -u /mountpoint
답변2
원격 시스템에 대한 SSH 액세스 권한이 있는 경우 다음과 같은 작업을 수행할 수 있습니다.
ssh server cat path/to/video | ffmpeg -i - [...]
이로 -
인해 ffmpeg가 파일 대신 stdin에서 읽습니다.
하지만 모든 형식이 파이프를 지원하는 것은 아닙니다. 보다https://stackoverflow.com/questions/12999674/ffmpeg-which-file-formats-support-stdin-usage