2013-09-30 8 views

답변

14

사용하여 다음 명령을

I) 비디오 스트림의 시간으로 활용하려면 다음 작업 미디어 파일의 지속 시간을 얻으려면

II

$ mediainfo --Inform="Video;%Duration%" [inputfile] 
일) :

$ mediainfo --Inform="General;%Duration%" [inputfile] 

III를) 오디오 스트림의 재생 시간 만 가져 오려면 :

$ mediainfo --Inform="Audio;%Duration%" [inputfile] 

IV) 하나 개 이상의 매개 변수의 값으로 활용하려면 다음 작업을 수행 할 수 mediainfo --Inform="Video;%Duration%" [inputfile]를 사용하는 IOTA에 의해 제공하지만 이상한 결과를 반환으로

1280,720,3000000,30.0 
3

:

$ mediainfo --Inform="Video;%Width%,%Height%,%BitRate%,%FrameRate%" [inputfile] 

출력은 다음과 같이 될 것이다. 예를 들어

, 기간 31S 565ms와 비디오 주어진 명령의 출력은 다음과 같습니다

31565 

그것은 나에게 적합하지이었고, 나는 다음과 같은 솔루션을 내놓았다 :

mediainfo --Inform="Video;%Duration/String3%" inputExample.webm 

반환 값은 다음과 같습니다

00:00:31.565 

결국 , 당신은 단지, 로 변환, PHP의 말을하자, 반환 값을 포맷 할 수 있습니다 예를 들면 : 우리는 또한 어떤 기간을 얻을 수는 FFmpeg를 사용할 수 있습니다

$parsed = date_parse('00:00:31.565'); 
echo $parsed['hour'] * 3600 + $parsed['minute'] * 60 + $parsed['second']; 

Example

1

비디오 또는 오디오 파일.

이는 FFmpeg은이 link

import subprocess 
import re 

process = subprocess.Popen(['ffmpeg', '-i', path_of_media_file], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 
stdout, stderr = process.communicate() 
matches = re.search(r"Duration:\s{1}(?P<hours>\d+?):(?P<minutes>\d+?):(?P<seconds>\d+\.\d+?),", stdout, re.DOTALL).groupdict() 

print matches['hours'] 
print matches['minutes'] 
print matches['seconds'] 
+0

니스, 그것이 내가 발견 ffprobe과 동일 따라 설치하려면 Mediainfo를보다 더 작은 형식을 지원합니다. mediainfo는 이러한 목적을 위해 특별히 제작되었지만 전체 ffmpeg 프레임 워크는 트랜스 코딩 및 무거운 설치를 위해 제작되었습니다. –