|
|
|
@ -176,7 +176,33 @@ class Icon:
|
|
|
|
|
def generateVideoThumbnail(self, fullPath, hashImgPth):
|
|
|
|
|
proc = None
|
|
|
|
|
try:
|
|
|
|
|
proc = subprocess.Popen(["ffmpeg", "-i", fullPath, "-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", fullPath]
|
|
|
|
|
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", fullPath]
|
|
|
|
|
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", fullPath]
|
|
|
|
|
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", fullPath]
|
|
|
|
|
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, "-an", "-i", fullPath, "-s", "320x180", "-vframes", "1", hashImgPth]
|
|
|
|
|
proc = subprocess.Popen(command)
|
|
|
|
|
proc.wait()
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print("Video thumbnail generation issue in thread:")
|
|
|
|
|