Added ffprobe checks
This commit is contained in:
parent
2e143997dd
commit
80ff15b4d3
Binary file not shown.
@ -84,6 +84,7 @@ class CrossClassSignals:
|
|||||||
dir = widget.get_filename()
|
dir = widget.get_filename()
|
||||||
threading.Thread(target=self.newDir, args=(dir,)).start()
|
threading.Thread(target=self.newDir, args=(dir,)).start()
|
||||||
|
|
||||||
|
@threaded
|
||||||
def newDir(self, dir):
|
def newDir(self, dir):
|
||||||
imageGrid = self.builder.get_object("imageGrid")
|
imageGrid = self.builder.get_object("imageGrid")
|
||||||
dirPath = dir
|
dirPath = dir
|
||||||
@ -148,7 +149,33 @@ class CrossClassSignals:
|
|||||||
args[0].attach(args[1], args[2], args[3], 1, 1)
|
args[0].attach(args[1], args[2], args[3], 1, 1)
|
||||||
|
|
||||||
def generateThumbnail(self, fullPathFile, hashImgpth):
|
def generateThumbnail(self, fullPathFile, hashImgpth):
|
||||||
subprocess.call(["ffmpeg", "-i", fullPathFile, "-vframes", "1", "-s", "320x180", "-q:v", "2", hashImgpth])
|
# Stream duration
|
||||||
|
command = ["ffprobe", "-v", "error", "-select_streams", "v:0", "-show_entries", "stream=duration", "-of", "default=noprint_wrappers=1:nokey=1", fullPathFile]
|
||||||
|
data = subprocess.run(command, stdout=subprocess.PIPE)
|
||||||
|
duration = data.stdout.decode('utf-8')
|
||||||
|
|
||||||
|
# Format (container) duration
|
||||||
|
if "N/A" in duration:
|
||||||
|
command = ["ffprobe", "-v", "error", "-show_entries", "format=duration", "-of", "default=noprint_wrappers=1:nokey=1", fullPathFile]
|
||||||
|
data = subprocess.run(command , stdout=subprocess.PIPE)
|
||||||
|
duration = data.stdout.decode('utf-8')
|
||||||
|
|
||||||
|
# Stream duration type: image2
|
||||||
|
if "N/A" in duration:
|
||||||
|
command = ["ffprobe", "-v", "error", "-select_streams", "v:0", "-f", "image2", "-show_entries", "stream=duration", "-of", "default=noprint_wrappers=1:nokey=1", fullPathFile]
|
||||||
|
data = subprocess.run(command, stdout=subprocess.PIPE)
|
||||||
|
duration = data.stdout.decode('utf-8')
|
||||||
|
|
||||||
|
# Format (container) duration type: image2
|
||||||
|
if "N/A" in duration:
|
||||||
|
command = ["ffprobe", "-v", "error", "-f", "image2", "-show_entries", "format=duration", "-of", "default=noprint_wrappers=1:nokey=1", fullPathFile]
|
||||||
|
data = subprocess.run(command , stdout=subprocess.PIPE)
|
||||||
|
duration = data.stdout.decode('utf-8')
|
||||||
|
|
||||||
|
# Get frame roughly 35% through video
|
||||||
|
grabTime = str( int( float( duration.split(".")[0] ) * 0.35) )
|
||||||
|
command = ["ffmpeg", "-ss", grabTime, "-i", fullPathFile, "-an", "-vframes", "1", "-s", "320x180", "-q:v", "2", hashImgpth]
|
||||||
|
subprocess.call(command)
|
||||||
|
|
||||||
def createGtkImage(self, path, wxh):
|
def createGtkImage(self, path, wxh):
|
||||||
try:
|
try:
|
||||||
|
Loading…
Reference in New Issue
Block a user