2012-01-10 4 views
1

비디오 파일 (mpg, avi, wmv, mov 등)과 시간 간격 (예 : 5_min-10_secs-11_ms에서 10-min_15-sec-10)을 가져 오는 Python 코드를 작성할 수 있습니까? 40_ms)이 간격에서 작은 동영상을 만드시겠습니까?비디오 파일에서 청크 추출

나는 이것이 ffmpeg, mencoder 및 다른 프로그램에서 가능하다는 것을 알고 있지만 파이썬 코드에서 이것을하고 싶습니다. 라이브러리의 사용법이나 특정 기능에 대한 링크를 보여주십시오. http://pymedia.org/

+1

필자는 경로가 "ffmpeg"에 쉘 아웃하는 것이 가장 이상하다고 말하고 싶습니다. CLI는 ffmpeg 라이브러리에 대한 유일한 인터페이스 인 것으로 보입니다. ffmpeg 라이브러리는 최신 상태를 유지하고 모든 고급 기능을 제공합니다. [GStreamer] (http://gstreamer.freedesktop.org/)에 대한 Python 바인딩을 사용해 볼 수도 있지만이 수준에서는 작동하지만 꽤 복잡한 라이브러리처럼 보입니다. – millimoose

+1

"do this by python code"는 정확히 무슨 뜻입니까? a) 순수 파이썬, b) 외부 라이브러리에 대한 파이썬 바인딩 또는 c) 예를 들어. ffmpeg. –

+0

@PaulHiemstra 질문에 정의 된 입력을 사용하여 결과를 만드는 것을 의미합니다. – xralf

답변

1

은 "비디오 파일을 편집 할 수있는 파이썬 라이브러리"에 대한 인터넷 검색을 SO에 바로 다시 나를 인도 :

라이브러리에서 이런 종류의 기능을 얻는 것 외에도 종종 mencoder 또는 ffmpeg를 호출하기 위해 시스템 호출 (os.system 또는 하위 프로세스)을 사용합니다. 당신은 pythonesque 의사 코드에서이 작업을 수행하는 함수를 작성할 수

def getVideoChunk(filepath, timerange, outputfile): 
    retcode = systemcall("ffmpeg %s %s", filepath, timerange, outputfile) 
    return retcode 

는 당연히 당신은 TGE 시스템 호출을 실행하는 방법을 선택해야하고 일부는 FFmpeg 구문을 배울 필요가있다. mmpeg의 구문을 가정 (주석 기준)

편집과 같은 것입니다 :

ffmpeg -i input.mpg -sameq -ss 00:02:00 -t 00:02:00 output.mpg 

통화가과 같습니다과 같을 것이다

getVideoChunk("input.mpg", "00:02:00", "output.mpg") 

및 시스템 호출 비트 (내가 사용주의 os.system을) :이 코드는 pseuodo 파이썬 코드는 내가 그것을 테스트하지 않았습니다 ... 코드를

os.system("ffmpeg -i %s -sameq -ss %s -t %s %s" % (filepath, timerange, timerange, outputfile)) 

참고 순전히 교육적인 것입니다.

+0

감사합니다. getVideoChunk() 호출을 보여 주시겠습니까? timerange는 어떻게 생겼습니까? – xralf

+0

올바른 ffmpg 구문으로 문자열을 만들 수 있습니다. qt ffmpeg보세요. –

+0

명령 줄에'ffmpeg -i input.mpg -sameq -ss 00:02:00 -t 00:02:00 output.mpg' 명령이 있다고 가정 해 봅시다. 함수 정의와 호출이 어떻게 생겼는지 모르겠습니다. – xralf

-1

pyffmpeg :

+1

'pyffmpeg'는 비디오 쓰기를 지원하지 않습니다. – millimoose