control parser verbosity
This commit is contained in:
@@ -8,7 +8,7 @@ import parse
|
|||||||
from ansi import cursor
|
from ansi import cursor
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
__version__ = 1.1
|
__version__ = 1.2
|
||||||
|
|
||||||
|
|
||||||
class Chopper:
|
class Chopper:
|
||||||
@@ -53,11 +53,20 @@ class Progress:
|
|||||||
self.input_size = "NA"
|
self.input_size = "NA"
|
||||||
self.outputs = []
|
self.outputs = []
|
||||||
self.output = "NA"
|
self.output = "NA"
|
||||||
|
self.verbosity = os.getenv("PARSER_VERBOSITY", "").upper()
|
||||||
|
try:
|
||||||
|
|
||||||
|
self.verbosity_level = ["NONE", "PROGRESS", "STATUS", "ALL"].index(
|
||||||
|
self.verbosity
|
||||||
|
)
|
||||||
|
except ValueError:
|
||||||
|
self.verbosity_level = 3
|
||||||
|
|
||||||
def parse(self, line):
|
def parse(self, line):
|
||||||
|
|
||||||
if not self.parse_frame(line):
|
if not self.parse_frame(line):
|
||||||
print(line.rstrip())
|
if self.verbosity_level == 3:
|
||||||
|
print(line.rstrip())
|
||||||
self.parse_input(line)
|
self.parse_input(line)
|
||||||
self.parse_output(line)
|
self.parse_output(line)
|
||||||
self.parse_duration(line)
|
self.parse_duration(line)
|
||||||
@@ -166,35 +175,45 @@ class Progress:
|
|||||||
self.framedata["projected_size"] = "NA"
|
self.framedata["projected_size"] = "NA"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
msg = """{cl}==== Q to exit ===============
|
msg = ""
|
||||||
{cl}Input: {input_file}
|
if self.verbosity_level > 1:
|
||||||
{cl}Output: {output_file}
|
msg = """{cl}==== Q to exit ===============
|
||||||
{cl}Progress: {progress}% Elapsed: H{elapsed}
|
{cl}Input: {input_file}
|
||||||
{cl}Finished in: H{left}
|
{cl}Output: {output_file}
|
||||||
{cl}Frame: {frame} = {out_time}
|
{cl}Progress: {progress}% Elapsed: H{elapsed}
|
||||||
{cl}Source duration: {duration}
|
{cl}Finished in: H{left}
|
||||||
{cl}Processing speed: FPS {fps} / {speed}
|
{cl}Frame: {frame} = {out_time}
|
||||||
{cl}Bitrate: {bitrate}
|
{cl}Source duration: {duration}
|
||||||
{cl}File size: {total_size}Mb -> {projected_size}Mb (Input: {input_size}Mb)
|
{cl}Processing speed: FPS {fps} / {speed}
|
||||||
{cl}{progress_bar}\r{up}""".format(
|
{cl}Bitrate: {bitrate}
|
||||||
input_file=self.input,
|
{cl}File size: {total_size}Mb -> {projected_size}Mb (Input: {input_size}Mb)
|
||||||
input_size=self.input_size,
|
{cl}{progress_bar}\r{up}""".format(
|
||||||
output_file=self.output,
|
input_file=self.input,
|
||||||
progress=self.framedata["percent_done"],
|
input_size=self.input_size,
|
||||||
progress_bar=self._progress_bar(self.framedata["percent_done"]),
|
output_file=self.output,
|
||||||
elapsed=self._timestr(self.framedata["time_elapsed"]),
|
progress=self.framedata["percent_done"],
|
||||||
left=self._timestr(self.framedata["time_remaining"]),
|
progress_bar=self._progress_bar(self.framedata["percent_done"]),
|
||||||
duration=self._timestr(self.duration),
|
elapsed=self._timestr(self.framedata["time_elapsed"]),
|
||||||
out_time=self._timestr(self.framedata["out_time_s"]),
|
left=self._timestr(self.framedata["time_remaining"]),
|
||||||
frame=self.framedata.get("frame", "NA"),
|
duration=self._timestr(self.duration),
|
||||||
fps=self.framedata.get("fps", "NA"),
|
out_time=self._timestr(self.framedata["out_time_s"]),
|
||||||
bitrate=self.framedata["bitrate"],
|
frame=self.framedata.get("frame", "NA"),
|
||||||
speed=self.framedata["speed"],
|
fps=self.framedata.get("fps", "NA"),
|
||||||
total_size=self._mbstr(self.framedata["total_size"]),
|
bitrate=self.framedata["bitrate"],
|
||||||
projected_size=self._mbstr(self.framedata["projected_size"]),
|
speed=self.framedata["speed"],
|
||||||
up=cursor.up(10),
|
total_size=self._mbstr(self.framedata["total_size"]),
|
||||||
cl=cursor.erase_line(),
|
projected_size=self._mbstr(self.framedata["projected_size"]),
|
||||||
)
|
up=cursor.up(10),
|
||||||
|
cl=cursor.erase_line(),
|
||||||
|
)
|
||||||
|
|
||||||
|
if self.verbosity_level == 1:
|
||||||
|
msg = "{cl}{progress_bar} {progress}%\r".format(
|
||||||
|
progress_bar=self._progress_bar(self.framedata["percent_done"]),
|
||||||
|
progress=self.framedata["percent_done"],
|
||||||
|
up=cursor.up(1),
|
||||||
|
cl=cursor.erase_line(),
|
||||||
|
)
|
||||||
|
|
||||||
sys.stdout.write(msg)
|
sys.stdout.write(msg)
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
@@ -220,7 +239,7 @@ class Progress:
|
|||||||
def _mbstr(self, b):
|
def _mbstr(self, b):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return "{:.1f}".format((float(b) / (1024 ** 2)))
|
return "{:.1f}".format((float(b) / (1024**2)))
|
||||||
except Exception:
|
except Exception:
|
||||||
return b
|
return b
|
||||||
|
|
||||||
@@ -253,14 +272,23 @@ def ask_for_overwrite(commands, path):
|
|||||||
return commands
|
return commands
|
||||||
|
|
||||||
|
|
||||||
|
def help_exit():
|
||||||
|
print(
|
||||||
|
"""This command passes all arguments to FFMPEG, and parses output to
|
||||||
|
readable format with progress. Change verbosity with env PARSER_VERBOSITY.
|
||||||
|
Values are NONE,PROGRESS,STATUS,ALL."""
|
||||||
|
)
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
commands = sys.argv[1:]
|
commands = sys.argv[1:]
|
||||||
if len(commands) == 1:
|
if len(commands) == 1:
|
||||||
if commands[0] == "-h":
|
if commands[0] == "-h":
|
||||||
print(
|
help_exit()
|
||||||
"This command passes all arguments to FFMPEG, and parses output to readable format with progress"
|
if len(commands) == 0:
|
||||||
)
|
help_exit()
|
||||||
sys.exit(0)
|
|
||||||
try:
|
try:
|
||||||
has_overwrite = parse_overwrite(commands)
|
has_overwrite = parse_overwrite(commands)
|
||||||
if not has_overwrite:
|
if not has_overwrite:
|
||||||
|
|||||||
Reference in New Issue
Block a user