ffmpeg 질문있습니다. (파이썬, 장고 연동)

조회수 1363회

ffmpeg과 파이썬 연동에 대해 궁금한 점이 있습니다.

ffmpeg는 보통 커맨드 창에서 실행되는데 파일 변환의 예를 들어서

'ffmpeg -i video.mp4 out1.avi'

라는 명령어를 실행하면 out1.avi가 루트 경로에 저장됩니다.

근데 이 out1.avi파일을 subprocess같은 명령어로 변수에 담는 방법이 있나요?

(url을 사용하여 지정된 곳에 저장 하고 싶지만 s3를 사용하고 있어 url 사용하여 저장하는 방법에 어려움이 있습니다. 혹시 url을 통해서도 s3에 바로 저장할 수 있는 방법이 있다면 알려주시면 감사하겠습니다!)

  • 일전에도 답변을 드렸지만 ffmpeg에 어떠한 목적을 사용하는지는 정확히는 모르지만 일전에 ffmpeg 라이브러리를 활용하시지 않고 쉘명령을 활용하실거라면 os.system('명령어') 해주시면 됩니다. 이렇게 사용하실거면 out1.avi를 사전에 정의를 하고 활용하실수 있겟죠 김호원 2020.3.31 09:11
  • ffmpeg-python에 변환된 파일을 변수에 집어 넣도록 하는 기능을 아무리 찾아도 없더라구요;; 혹시 "converted_video = ffmpeg.어떤 메소드()"에서 변환된 비디오 파일이 converted_video에 직접 담기게 하는 '어떤메소드()'가 있을까요? poffsle 2020.3.31 14:15
  • 변환된 파일이라 말씀하시면 파일명 인지 파일에 대한 핸들을 말씀하시는건지 모르지만. 파일명이라면 사전에 정의를 하고 사용하시면 되지 않을까요. 또한 ffmpeg 라이브러리에 관련되어서는 https://github.com/kkroening/ffmpeg-python#quickstart 에 정확한 사용 방법이 명시되어있습니다. 김호원 2020.3.31 15:19

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    파이썬으로 이런걸 해본적은 없는데 PHP로 비슷한걸 해본적은 있습니다. 전형적으로 다음 순서가 됩니다.

    1. 처리할 파일을 확보합니다. (읽기/쓰기 권한은 있는지 리소스로 얻을수 있는지 등등)
    2. 저장할 위치 full path를 정합니다. (이 단계에서 먼저 이걸 정함에 유의)
    3. 그 위치에 컨버팅하여 저장하라고 명령을 실행시킵니다. (단 동기적으로. 전체 명령이 다 돌았는지를 알 수 있는 방식을 사용합니다. PHP의 경우 shell_exec()가 여기에 해당합니다.)
    4. 3단계가 정상적으로 끝났으면 처리된 파일은 저장할 위치에 정확히 존재한다고 믿을 수 있습니다. 그 파일의 존재가 확보되면 다음으로 넘어가고, 아니면 "실패" 처리합니다.
    5. S3로든 FTP로든 그 파일을 필요한 곳에 올리고 끝냅니다.

    상기 순서에서 '커맨드 실행시에 사용한 인자값 또는 커맨드 출력을 다시 돌려받는' 절차는 없음을 유의해 주세요.

    + 파이썬에서 S3 버킷에 로컬 파일을 올리는 건 boto3이라는 패키지를 넣고 3분간 끓이면 되는거 같네요. https://zzdd1558.tistory.com/218

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)