Working on comments and minor bug fixes in the Video object
This commit is contained in:
parent
ab70af3e21
commit
66ce75cd9f
@ -18,11 +18,11 @@ class Video():
|
|||||||
'''Contains the information and methods of a video file.
|
'''Contains the information and methods of a video file.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
filepath : A string containing the full filepath
|
filepath : A string containing the full filepath
|
||||||
useful :
|
useful : A boolean marking if the video is to be operated on
|
||||||
verbose :
|
verbose = False : A list of print options
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
:
|
|
||||||
'''
|
'''
|
||||||
self.path = None
|
self.path = None
|
||||||
self.filename_origin = None
|
self.filename_origin = None
|
||||||
@ -70,7 +70,13 @@ class Video():
|
|||||||
print(f"{colorama.Fore.RED} {self.error}{colorama.Fore.RESET}")
|
print(f"{colorama.Fore.RED} {self.error}{colorama.Fore.RESET}")
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
'''Returns a short formated string about the video'''
|
'''Returns a short formated string about the video
|
||||||
|
|
||||||
|
Args:
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
String : A short formated string about the video
|
||||||
|
'''
|
||||||
|
|
||||||
if type(self.error) is str and "FileNotFoundError" in self.error:
|
if type(self.error) is str and "FileNotFoundError" in self.error:
|
||||||
return self.error
|
return self.error
|
||||||
@ -104,7 +110,13 @@ class Video():
|
|||||||
__repr__ = __str__
|
__repr__ = __str__
|
||||||
|
|
||||||
def fprint(self):
|
def fprint(self):
|
||||||
'''Returns a long formated string about the video '''
|
'''Returns a long formated string about the video
|
||||||
|
|
||||||
|
Args:
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
String : A long formated string about the video
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
if type(self.error) is str and "FileNotFoundError" in self.error:
|
if type(self.error) is str and "FileNotFoundError" in self.error:
|
||||||
@ -140,6 +152,15 @@ class Video():
|
|||||||
'''
|
'''
|
||||||
Convert to original file to the requested format / codec
|
Convert to original file to the requested format / codec
|
||||||
verbose will print ffmpeg's output
|
verbose will print ffmpeg's output
|
||||||
|
|
||||||
|
Args:
|
||||||
|
vcodec = "x265" : The new video codec, supports av1 or x265
|
||||||
|
acodec = False : Currently not enabled, will be for audio codecs
|
||||||
|
extension = "mkv" : A string containing the new video container format and file extention
|
||||||
|
verbose = False : A boolean enabling verbosity
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
boolean : Operation success
|
||||||
'''
|
'''
|
||||||
|
|
||||||
# Setting new filename
|
# Setting new filename
|
||||||
@ -200,7 +221,15 @@ class Video():
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def detect_fferror(filepath):
|
def detect_fferror(filepath):
|
||||||
'''Returns a string with the detected errors'''
|
'''Returns a string with the detected errors
|
||||||
|
|
||||||
|
Args:
|
||||||
|
filepath : A string containing the full filepath
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
String : The errors that have been found / happened
|
||||||
|
False : The lack of errors
|
||||||
|
'''
|
||||||
try:
|
try:
|
||||||
args = ["ffprobe","-v","error",str(filepath)]
|
args = ["ffprobe","-v","error",str(filepath)]
|
||||||
output = subprocess.check_output(args, stderr=subprocess.STDOUT)
|
output = subprocess.check_output(args, stderr=subprocess.STDOUT)
|
||||||
@ -214,7 +243,15 @@ class Video():
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def detect_codec(filepath):
|
def detect_codec(filepath):
|
||||||
'''Returns a string with the detected codec'''
|
'''Returns a string with the detected codec
|
||||||
|
|
||||||
|
Args:
|
||||||
|
filepath : A string containing the full filepath
|
||||||
|
Returns:
|
||||||
|
String : The codec that has been detected
|
||||||
|
False : An error in the codec fetching process
|
||||||
|
'''
|
||||||
|
output = False
|
||||||
try:
|
try:
|
||||||
args = ["ffprobe", "-v", "quiet", "-select_streams", "v:0", "-show_entries", "stream=codec_name", "-of", "default=noprint_wrappers=1:nokey=1", str(filepath)]
|
args = ["ffprobe", "-v", "quiet", "-select_streams", "v:0", "-show_entries", "stream=codec_name", "-of", "default=noprint_wrappers=1:nokey=1", str(filepath)]
|
||||||
output = subprocess.check_output(args, stderr=subprocess.STDOUT)
|
output = subprocess.check_output(args, stderr=subprocess.STDOUT)
|
||||||
@ -229,7 +266,14 @@ class Video():
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def detect_resolution(filepath):
|
def detect_resolution(filepath):
|
||||||
'''Returns a list with the detected width(0) and height(1)'''
|
'''Returns a list with the detected width(0) and height(1)
|
||||||
|
|
||||||
|
Args:
|
||||||
|
filepath : A string containing the full filepath
|
||||||
|
Returns:
|
||||||
|
List : the detected width(0) and height(1)
|
||||||
|
False : An error in the codec fetching process
|
||||||
|
'''
|
||||||
try:
|
try:
|
||||||
args = ["ffprobe","-v","quiet","-select_streams","v:0", "-show_entries","stream=width,height","-of","csv=s=x:p=0",str(filepath)]
|
args = ["ffprobe","-v","quiet","-select_streams","v:0", "-show_entries","stream=width,height","-of","csv=s=x:p=0",str(filepath)]
|
||||||
output = subprocess.check_output(args, stderr=subprocess.STDOUT)
|
output = subprocess.check_output(args, stderr=subprocess.STDOUT)
|
||||||
@ -246,7 +290,14 @@ class Video():
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def detect_definition(filepath = False, width = False, height = False):
|
def detect_definition(filepath = False, width = False, height = False):
|
||||||
'''Returns a string with the detected definition corrected for dead space'''
|
'''Returns a string with the detected definition corrected for dead space
|
||||||
|
|
||||||
|
Args:
|
||||||
|
filepath : A string containing the full filepath
|
||||||
|
Returns:
|
||||||
|
List : The classified definition in width(0) and height(1)
|
||||||
|
False : An error in the process
|
||||||
|
'''
|
||||||
if filepath:
|
if filepath:
|
||||||
width, height = Video.detect_resolution(filepath)
|
width, height = Video.detect_resolution(filepath)
|
||||||
if not width and not height:
|
if not width and not height:
|
||||||
@ -264,7 +315,14 @@ class Video():
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def detect_filesize(filepath):
|
def detect_filesize(filepath):
|
||||||
'''Returns an integer with size in mb'''
|
'''Returns an integer with size in mb
|
||||||
|
|
||||||
|
Args:
|
||||||
|
filepath : A string containing the full filepath
|
||||||
|
Returns:
|
||||||
|
Integer : The filesize in mb
|
||||||
|
False : An error in the process
|
||||||
|
'''
|
||||||
try:
|
try:
|
||||||
size = int(os.path.getsize(filepath) / 1024 / 1024)
|
size = int(os.path.getsize(filepath) / 1024 / 1024)
|
||||||
except subprocess.CalledProcessError:
|
except subprocess.CalledProcessError:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user