ffmpeg 질문있습니다. (파이썬, 장고 연동)
조회수 1363회
ffmpeg과 파이썬 연동에 대해 궁금한 점이 있습니다.
ffmpeg는 보통 커맨드 창에서 실행되는데 파일 변환의 예를 들어서
'ffmpeg -i video.mp4 out1.avi'
라는 명령어를 실행하면 out1.avi가 루트 경로에 저장됩니다.
근데 이 out1.avi파일을 subprocess같은 명령어로 변수에 담는 방법이 있나요?
(url을 사용하여 지정된 곳에 저장 하고 싶지만 s3를 사용하고 있어 url 사용하여 저장하는 방법에 어려움이 있습니다. 혹시 url을 통해서도 s3에 바로 저장할 수 있는 방법이 있다면 알려주시면 감사하겠습니다!)
1 답변
-
파이썬으로 이런걸 해본적은 없는데 PHP로 비슷한걸 해본적은 있습니다. 전형적으로 다음 순서가 됩니다.
- 처리할 파일을 확보합니다. (읽기/쓰기 권한은 있는지 리소스로 얻을수 있는지 등등)
- 저장할 위치 full path를 정합니다. (이 단계에서 먼저 이걸 정함에 유의)
- 그 위치에 컨버팅하여 저장하라고 명령을 실행시킵니다. (단 동기적으로. 전체 명령이 다 돌았는지를 알 수 있는 방식을 사용합니다. PHP의 경우
shell_exec()
가 여기에 해당합니다.) - 3단계가 정상적으로 끝났으면 처리된 파일은 저장할 위치에 정확히 존재한다고 믿을 수 있습니다. 그 파일의 존재가 확보되면 다음으로 넘어가고, 아니면 "실패" 처리합니다.
- S3로든 FTP로든 그 파일을 필요한 곳에 올리고 끝냅니다.
상기 순서에서 '커맨드 실행시에 사용한 인자값 또는 커맨드 출력을 다시 돌려받는' 절차는 없음을 유의해 주세요.
+ 파이썬에서 S3 버킷에 로컬 파일을 올리는 건 boto3이라는 패키지를 넣고 3분간 끓이면 되는거 같네요. https://zzdd1558.tistory.com/218
댓글 입력