Merge pull request #10 from dtaivpp/master

fixed output file naming issue
This commit is contained in:
AlfredoSequeida 2020-10-08 05:33:01 -07:00 committed by GitHub
commit ae1e53a899
2 changed files with 23 additions and 11 deletions

3
.gitignore vendored
View File

@ -102,3 +102,6 @@ venv.bak/
# mypy
.mypy_cache/
# Ignore output files
fvid_frames/

View File

@ -108,7 +108,7 @@ def get_bits_from_video(video_filepath):
return bits
def save_bits_to_file(filepath, bits):
def save_bits_to_file(file_path, bits):
# get file extension
bitstring = Bits(bin=bits)
@ -116,8 +116,15 @@ def save_bits_to_file(filepath, bits):
mime = Magic(mime=True)
mime_type = mime.from_buffer(bitstring.tobytes())
# If filepath not passed in use defualt
# otherwise used passed in filepath
if file_path == None:
filepath = f"file{mimetypes.guess_extension(type=mime_type)}"
else:
filepath = file_path
with open(
f"{filepath}/file{mimetypes.guess_extension(type=mime_type)}", "wb"
filepath, "wb"
) as f:
bitstring.tofile(f)
@ -159,12 +166,18 @@ def make_image_sequence(bitstring, resolution=(1920, 1080)):
def make_video(output_filepath, image_sequence):
if output_filepath == None:
outputfile = "file.mp4"
else:
outputfile = output_filepath
frames = glob.glob(f"{FRAMES_DIR}encoded_frames*.png")
# for one frame
if len(frames) == 1:
ffmpeg.input(frames[0], loop=1, t=1).output(
output_filepath, vcodec="libx264rgb"
outputfile, vcodec="libx264rgb"
).run(quiet=True)
else:
@ -172,7 +185,7 @@ def make_video(output_filepath, image_sequence):
f"{FRAMES_DIR}encoded_frames*.png",
pattern_type="glob",
framerate="1/5",
).output(output_filepath, vcodec="libx264rgb").run(quiet=True)
).output(outputfile, vcodec="libx264rgb").run(quiet=True)
def cleanup():
@ -208,14 +221,12 @@ def main():
if args.decode:
bits = get_bits_from_video(args.input)
file_path = ""
file_path = None
if args.output:
file_path = args.output
else:
file_path = "./"
save_bits_to_file("./", bits)
save_bits_to_file(file_path, bits)
elif args.encode:
# get bits from file
@ -230,12 +241,10 @@ def main():
f"{FRAMES_DIR}encoded_frames_{index}.png"
)
video_file_path = ""
video_file_path = None
if args.output:
video_file_path = args.output
else:
video_file_path = "./file.mp4"
make_video(video_file_path, image_sequence)