Git Product home page Git Product logo

frameoverframe's Introduction

Code style: black Imports: isort

frameoverframe

A collection of scripts for organizing, converting and manipulating image sequences. This has been written to solve my personal workflow needs but I will gladly accept issues and pull requests. As of 2021 it is being actively developed and is still riddled with issues. Good Luck!

Organization scripts

bracket - Organize images in folders by either splitting or merging folders of images shot as brackets in camera. This moves the actual files it does not create new ones.

renumber - Renumber image sequences.

rename_uniq - Rename individual files so they have a prefix matching the enclosing folder.

test_image - Takes one or more folders of images and tests each image using ffmpeg's identify. Reports bad images to stdout.

unmix - Given a folder sort images by extension and place each extension into its own folder.

check_images - Test images in every input folder using ffmpeg's 'identify'.

File format conversion scripts

img2vid - Combine image frames to create a video.

raw2dng - Convert raw format images to dng format.

vid2img - Convert a video to an image sequence.

Image manipulation scripts

align_image_stack_sequence - Wrapper for align_image_stack that allows it to be run against a folder of bracketed images.

deflicker - Adjust brightness of images to reduce flickering.

enfuse_batch - Combine multiple images together to create new ones. Either for hdr images or just to make overlays.

recombine - Recombine a list of directories to be combined and renumbered.

tracer Vector based tracing of frames.

Tests

The tests are scant and do not provide anywhere near coverage. python -m unittest discover -s .

frameoverframe's People

Contributors

charles1997 avatar uglygus avatar

Stargazers

 avatar

Watchers

 avatar  avatar

frameoverframe's Issues

img2vid needs --force -f

ffmpeg asks if it should overwrite if the output file already exists.

File '/Users/cooper/BIG STUFF/testvid/image_seq_preview.mp4' already exists. Overwrite? [y/N]

deflicker image file is truncated (not sure whether it is a local issue)

charleslinux@charlesdesktop01:/mnt/c/Users/charles xu$ deflicker /mnt/l/summer2021/dst-enfused
args== {'--format': 'png',
'--outdir': 'INPATH/INFOLDERNAME_deflickered',
'--quiet': False,
'--sigma': None,
'--window': 10,
'': '/mnt/l/summer2021/dst-enfused'}
15:37:06 - INFO | This is deflicker
15:37:06 - INFO | Found 7 images in directory /mnt/l/summer2021/dst-enfused
args== {'--format': 'png',
'--outdir': '/mnt/l/summer2021/dst-enfused-deflickered',
'--quiet': False,
'--sigma': None,
'--window': 10,
'': '/mnt/l/summer2021/dst-enfused'}
15:37:06 - INFO | Calculating brightness of the images
92.33546080508475
91.73739337379632
91.5953303219273
90.97985916791032
90.58202364375688
90.31632041604485
Traceback (most recent call last):
File "/home/charleslinux/.local/lib/python3.8/site-packages/PIL/ImageFile.py", line 237, in load
s = read(self.decodermaxblock)
File "/home/charleslinux/.local/lib/python3.8/site-packages/PIL/PngImagePlugin.py", line 896, in load_read
cid, pos, length = self.png.read()
File "/home/charleslinux/.local/lib/python3.8/site-packages/PIL/PngImagePlugin.py", line 162, in read
length = i32(s)
File "/home/charleslinux/.local/lib/python3.8/site-packages/PIL/_binary.py", line 75, in i32be
return unpack_from(">I", c, o)[0]
struct.error: unpack_from requires a buffer of at least 4 bytes for unpacking 4 bytes at offset 0 (actual buffer size is 0)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/charleslinux/.local/lib/python3.8/site-packages/imageio/plugins/pillow.py", line 669, in pil_try_read
im.getdata()[0]
File "/home/charleslinux/.local/lib/python3.8/site-packages/PIL/Image.py", line 1292, in getdata
self.load()
File "/home/charleslinux/.local/lib/python3.8/site-packages/PIL/ImageFile.py", line 243, in load
raise OSError("image file is truncated") from e
OSError: image file is truncated

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/charleslinux/.local/bin/deflicker", line 11, in
load_entry_point('frameoverframe', 'console_scripts', 'deflicker')()
File "/mnt/l/summer2021/frameoverframe/frameoverframe/cli/deflicker__main__.py", line 91, in main
deflicker(
File "/mnt/l/summer2021/frameoverframe/frameoverframe/deflicker.py", line 118, in deflicker
brightness = calc_brightness(images, sigma=sigma)
File "/mnt/l/summer2021/frameoverframe/frameoverframe/deflicker.py", line 68, in calc_brightness
image = io.imread(filename)
File "/home/charleslinux/.local/lib/python3.8/site-packages/skimage/io/_io.py", line 48, in imread
img = call_plugin('imread', fname, plugin=plugin, **plugin_args)
File "/home/charleslinux/.local/lib/python3.8/site-packages/skimage/io/manage_plugins.py", line 207, in call_plugin
return func(*args, **kwargs)
File "/home/charleslinux/.local/lib/python3.8/site-packages/skimage/io/_plugins/imageio_plugin.py", line 10, in imread
return np.asarray(imageio_imread(*args, **kwargs))
File "/home/charleslinux/.local/lib/python3.8/site-packages/imageio/core/functions.py", line 265, in imread
reader = read(uri, format, "i", **kwargs)
File "/home/charleslinux/.local/lib/python3.8/site-packages/imageio/core/functions.py", line 186, in get_reader
return format.get_reader(request)
File "/home/charleslinux/.local/lib/python3.8/site-packages/imageio/core/format.py", line 170, in get_reader
return self.Reader(self, request)
File "/home/charleslinux/.local/lib/python3.8/site-packages/imageio/core/format.py", line 221, in init
self._open(**self.request.kwargs.copy())
File "/home/charleslinux/.local/lib/python3.8/site-packages/imageio/plugins/pillow.py", line 298, in _open
return PillowFormat.Reader._open(self, pilmode=pilmode, as_gray=as_gray)
File "/home/charleslinux/.local/lib/python3.8/site-packages/imageio/plugins/pillow.py", line 135, in _open
pil_try_read(self._im)
File "/home/charleslinux/.local/lib/python3.8/site-packages/imageio/plugins/pillow.py", line 680, in pil_try_read
raise ValueError(error_message)
ValueError: Could not load ""
Reason: "image file is truncated"
Please see documentation at: http://pillow.readthedocs.io/en/latest/installation.html#external-libraries

make tests for everything

There are zero test at this point. Time to go back and do it. Really should have started earlier.

Permissions error? Thumbs.db

cooper@Lucia ~ % unmix '/mnt/w/Drive4/timelapse 2022/2022-11-16 videonale backyard snow'
unmixing /mnt/w/Drive4/timelapse 2022/2022-11-16 videonale backyard snow ...
Traceback (most recent call last):
File "/home/cooper/.local/bin/unmix", line 8, in
sys.exit(main())
File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/cli/unmix__main__.py", line 94, in main
unmix(directory)
File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/unmix.py", line 147, in unmix
shutil.rmtree(src_dir)
File "/usr/lib/python3.8/shutil.py", line 718, in rmtree
_rmtree_safe_fd(fd, path, onerror)
File "/usr/lib/python3.8/shutil.py", line 675, in _rmtree_safe_fd
onerror(os.unlink, fullname, sys.exc_info())
File "/usr/lib/python3.8/shutil.py", line 673, in _rmtree_safe_fd
os.unlink(entry.name, dir_fd=topfd)
PermissionError: [Errno 13] Permission denied: 'Thumbs.db'

Recombine crashing but seeming to finish. FileNotFoundError: [Errno 2] No such file or directory:

Traceback (most recent call last):
  File "/Users/cooper/homebrew/Cellar/[email protected]/3.10.4/Frameworks/Python.framework/Versions/3.10/lib/python3.10/shutil.py", line 813, in move
    os.rename(src, real_dst)
OSError: [Errno 57] Socket is not connected: '/Volumes/Maxine-shared/timelapse 2022/2022-04-22 triple glass_JPG_1/DSC02721.JPG' -> '/Volumes/Maxine-shared/timelapse 2022/2022-04-22 triple glass_JPG~recombined_20220618_104646/00905.JPG'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/cooper/homebrew/bin/recombine", line 33, in <module>
    sys.exit(load_entry_point('frameoverframe', 'console_scripts', 'recombine')())
  File "/Users/cooper/DM-Shared/code/frameoverframe/frameoverframe/cli/recombine__main__.py", line 127, in main
    recombine(
  File "/Users/cooper/DM-Shared/code/frameoverframe/frameoverframe/recombine.py", line 308, in recombine
    shutil.move(item, item_dest)
  File "/Users/cooper/homebrew/Cellar/[email protected]/3.10.4/Frameworks/Python.framework/Versions/3.10/lib/python3.10/shutil.py", line 833, in move
    copy_function(src, real_dst)
  File "/Users/cooper/homebrew/Cellar/[email protected]/3.10.4/Frameworks/Python.framework/Versions/3.10/lib/python3.10/shutil.py", line 434, in copy2
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/Users/cooper/homebrew/Cellar/[email protected]/3.10.4/Frameworks/Python.framework/Versions/3.10/lib/python3.10/shutil.py", line 254, in copyfile
    with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: '/Volumes/Maxine-shared/timelapse 2022/2022-04-22 triple glass_JPG_1/DSC02721.JPG'

It would be good to count the total number of images at the start and double check that we have that many again at the end. I'm not sure what is going on here? The folder ended up having the same final number of images in the _ARW and the _JPG so if there was an error it must have been the same. Also there was no ~recombine folder left after the crash.

img2vid dumps on file that doesn't exist

cooper@vpa-c02ztduamd6  ~/c/imgprep  img2vid a;skjdfgn
args=Namespace(input_dirs=['a'], output_filename=None, profile='preview', framenumber=True)
top of img2vid input_dirs= ['a']
Traceback (most recent call last):
File "/Users/cooper/homebrew/bin/img2vid", line 33, in
sys.exit(load_entry_point('frameoverframe', 'console_scripts', 'img2vid')())
File "/Users/cooper/Documents-Mirrored/code/frameoverframe/frameoverframe/cli/img2vid__main__.py", line 61, in main
img2vid(args.input_dirs, args.output_filename, args.profile, framenumber=args.framenumber)
File "/Users/cooper/Documents-Mirrored/code/frameoverframe/frameoverframe/img2vid.py", line 49, in img2vid
if not test_one_extension(_dir, fatal=False):
File "/Users/cooper/Documents-Mirrored/code/frameoverframe/frameoverframe/utils.py", line 61, in test_one_extension
if len(ext_list(src_dir)) > 1:
File "/Users/cooper/Documents-Mirrored/code/frameoverframe/frameoverframe/utils.py", line 84, in ext_list
dirlist = sorted_listdir(directorypath)
File "/Users/cooper/Documents-Mirrored/code/frameoverframe/frameoverframe/utils.py", line 108, in sorted_listdir
names = os.listdir(directory)
FileNotFoundError: [Errno 2] No such file or directory: 'a'
zsh: command not found: skjdfgn

img2vid - crashes on Thumbs.db

calling image2vid(/mnt/w/Drive7-vivian/timelapse 2021-bin-3/2021-07-01 cube lucite north_ARW_db
Traceback (most recent call last):
  File "/home/cooper/.local/bin/make_previews", line 8, in <module>
    sys.exit(main())
  File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/cli/make_previews__main__.py", line 73, in main
    make_previews(args.src_dir)
  File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/make_previews.py", line 90, in make_previews
    result = _make_previews(src_dir)
  File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/make_previews.py", line 81, in _make_previews
    img2vid(_dir)  # , _dir + ".mp4"
  File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/img2vid.py", line 161, in img2vid
    im = Image.open(sorted_listdir(input_dirs[0])[0])
  File "/home/cooper/.local/lib/python3.8/site-packages/PIL/Image.py", line 2656, in open
    raise IOError("cannot identify image file %r"
OSError: cannot identify image file '/mnt/w/Drive7-vivian/timelapse 2021-bin-3/2021-07-01 cube lucite north_ARW_db/Thumbs.db'

unmix fails on directory without images

charleslinux@charlesdesktop01:/mnt/l/summer2021/frameoverframe$ unmix .
unmixing . ...
Traceback (most recent call last):
File "/usr/lib/python3.8/shutil.py", line 788, in move
os.rename(src, real_dst)
PermissionError: [Errno 13] Permission denied: './.git' -> '._/.git'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/charleslinux/.local/bin/unmix", line 11, in
load_entry_point('frameoverframe', 'console_scripts', 'unmix')()
File "/mnt/l/summer2021/frameoverframe/frameoverframe/cli/unmix__main__.py", line 59, in main
unmix(directory)
File "/mnt/l/summer2021/frameoverframe/frameoverframe/unmix.py", line 98, in unmix
shutil.move(os.path.join(src_dir, item), new_dirname(src_dir, ext))
File "/usr/lib/python3.8/shutil.py", line 798, in move
copytree(src, real_dst, copy_function=copy_function,
File "/usr/lib/python3.8/shutil.py", line 554, in copytree
return copytree(entries=entries, src=src, dst=dst, symlinks=symlinks,
File "/usr/lib/python3.8/shutil.py", line 510, in copytree
raise Error(errors)
shutil.Error: [(<DirEntry 'hooks'>, '.
/.git/hooks', "[Errno 13] Permission denied: '.
/.git/hooks'"), (<DirEntry 'info'>, './.git/info', "[Errno 13] Permission denied: './.git/info'"), (<DirEntry 'heads'>, './.git/logs/refs/heads', "[Errno 13] Permission denied: './.git/logs/refs/heads'"), (<DirEntry 'origin'>, './.git/logs/refs/remotes/origin', "[Errno 13] Permission denied: './.git/logs/refs/remotes/origin'"), (<DirEntry 'upstream'>, './.git/logs/refs/remotes/upstream', "[Errno 13] Permission denied: './.git/logs/refs/remotes/upstream'"), (<DirEntry 'remotes'>, './.git/logs/refs/remotes', "[Errno 13] Permission denied: './.git/logs/refs/remotes'"), (<DirEntry 'refs'>, './.git/logs/refs', "[Errno 13] Permission denied: './.git/logs/refs'"), (<DirEntry 'logs'>, './.git/logs', "[Errno 13] Permission denied: './.git/logs'"), (<DirEntry '09'>, './.git/objects/09', "[Errno 13] Permission denied: './.git/objects/09'"), (<DirEntry '20'>, './.git/objects/20', "[Errno 13] Permission denied: './.git/objects/20'"), (<DirEntry '53'>, './.git/objects/53', "[Errno 13] Permission denied: './.git/objects/53'"), (<DirEntry '99'>, './.git/objects/99', "[Errno 13] Permission denied: './.git/objects/99'"), (<DirEntry '9a'>, './.git/objects/9a', "[Errno 13] Permission denied: './.git/objects/9a'"), (<DirEntry 'info'>, './.git/objects/info', "[Errno 13] Permission denied: './.git/objects/info'"), (<DirEntry 'pack'>, './.git/objects/pack', "[Errno 13] Permission denied: './.git/objects/pack'"), (<DirEntry 'objects'>, './.git/objects', "[Errno 13] Permission denied: './.git/objects'"), (<DirEntry 'heads'>, './.git/refs/heads', "[Errno 13] Permission denied: './.git/refs/heads'"), (<DirEntry 'origin'>, './.git/refs/remotes/origin', "[Errno 13] Permission denied: './.git/refs/remotes/origin'"), (<DirEntry 'upstream'>, './.git/refs/remotes/upstream', "[Errno 13] Permission denied: './.git/refs/remotes/upstream'"), (<DirEntry 'remotes'>, './.git/refs/remotes', "[Errno 13] Permission denied: './.git/refs/remotes'"), (<DirEntry 'tags'>, './.git/refs/tags', "[Errno 13] Permission denied: './.git/refs/tags'"), (<DirEntry 'refs'>, './.git/refs', "[Errno 13] Permission denied: './.git/refs'"), ('./.git', './.git', "[Errno 13] Permission denied: './.git'")]

img2vid should stop for none image input

charleslinux@charlesdesktop01:/mnt/c/Users/charles xu$ img2vid /mnt/l/summer2021/test_preview.mp4
args=Namespace(framenumber=True, input_dirs=['/mnt/l/summer2021/test_preview.mp4'], output_filename=None, profile='preview')
top of img2vid input_dirs= ['/mnt/l/summer2021/test_preview.mp4']
Traceback (most recent call last):
File "/home/charleslinux/.local/bin/img2vid", line 11, in
load_entry_point('frameoverframe', 'console_scripts', 'img2vid')()
File "/mnt/l/summer2021/frameoverframe/frameoverframe/cli/img2vid__main__.py", line 61, in main
img2vid(args.input_dirs, args.output_filename, args.profile, framenumber=args.framenumber)
File "/mnt/l/summer2021/frameoverframe/frameoverframe/img2vid.py", line 49, in img2vid
if not test_one_extension(_dir, fatal=False):
File "/mnt/l/summer2021/frameoverframe/frameoverframe/utils.py", line 61, in test_one_extension
if len(ext_list(src_dir)) > 1:
File "/mnt/l/summer2021/frameoverframe/frameoverframe/utils.py", line 84, in ext_list
dirlist = sorted_listdir(directorypath)
File "/mnt/l/summer2021/frameoverframe/frameoverframe/utils.py", line 108, in sorted_listdir
names = os.listdir(directory)
NotADirectoryError: [Errno 20] Not a directory: '/mnt/l/summer2021/test_preview.mp4'

img2vid - IndexError: list index out of range - on empty input dir

calling image2vid(/mnt/w/Drive7-vivian/timelapse 2021-bin-3/2021-07-01 Birds and tetrahedron
Traceback (most recent call last):
  File "/home/cooper/.local/bin/make_previews", line 8, in <module>
    sys.exit(main())
  File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/cli/make_previews__main__.py", line 73, in main
    make_previews(args.src_dir)
  File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/make_previews.py", line 90, in make_previews
    result = _make_previews(src_dir)
  File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/make_previews.py", line 81, in _make_previews
    img2vid(_dir)  # , _dir + ".mp4"
  File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/img2vid.py", line 160, in img2vid
    log.debug(f"{me()} openning-->{sorted_listdir(input_dirs[0])[0]}")
IndexError: list index out of range

unmix fail

charleslinux@charlesdesktop01:/mnt/c/Users/charles xu$ unmix
Traceback (most recent call last):
File "/home/charleslinux/.local/bin/unmix", line 11, in
load_entry_point('frameoverframe', 'console_scripts', 'unmix')()
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 490, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2854, in load_entry_point
return ep.load()
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2445, in load
return self.resolve()
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2451, in resolve
module = import(self.module_name, fromlist=['name'], level=0)
File "/mnt/l/summer2021/frameoverframe/frameoverframe/init.py", line 3, in
import frameoverframe.unmix
File "/mnt/l/summer2021/frameoverframe/frameoverframe/unmix.py", line 31, in
import frameoverframe.utils as utils
File "/mnt/l/summer2021/frameoverframe/frameoverframe/utils.py", line 17, in
from exif import Image as exifImage # need this to write tags
ModuleNotFoundError: No module named 'exif'

all - fail when cwd does not exist

Tested with renumber and recombine. It will fail with others too.

File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/inspect.py", line 721, in getabsfile
    return os.path.normcase(os.path.abspath(_filename))
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/posixpath.py", line 379, in abspath
    cwd = os.getcwd()
FileNotFoundError: [Errno 2] No such file or directory
➜  img2vid_cear086d cwd

vid2img should stop for none video input

charleslinux@charlesdesktop01:/mnt/c/Users/charles xu$ vid2img '/mnt/l/summer2021/dst_thinned_20210603_113254)'
calling ffmpeg ...
got here

calling : /usr/bin/ffmpeg -i '/mnt/l/summer2021/dst_thinned_20210603_113254)' '/mnt/l/summer2021/dst_thinned_20210603_113254)/dst_thinned_20210603_113254)_%08d.png'

ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
/mnt/l/summer2021/dst_thinned_20210603_113254): Is a directory
DONE.

test_images input non image directory

charleslinux@charlesdesktop01:/mnt/c/Users/charles xu$ test_images /mnt/l/summer2021/bracket
args=Namespace(input_dirs=['/mnt/l/summer2021/bracket'])

"test_images should say input directory contains no images"

exif date not found correctly so not used in recombine

About to renumber --> one_dst_dir= /Volumes/Maxine-shared/timelapse 2022/2022-04-22 triple glass_JPG
renumber start_at= 0
renumber prefix= 2022-04-22 triple glass_JPG-0
renumber inplace= True
renumber sort_method= name
EXIF date not present. Sorting by name.

make_previews should catch folders with just one extension that is not JPG

Dir only contains one '.xmp' file.

calling image2vid(/mnt/d/timelapse 2021-bin-1/2021-01-26 honeysuckle night_ARW_ARW_xmp
Traceback (most recent call last):
  File "/home/cooper/.local/bin/make_previews", line 8, in <module>
    sys.exit(main())
  File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/cli/make_previews__main__.py", line 73, in main
    make_previews(args.src_dir)
  File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/make_previews.py", line 90, in make_previews
    result = _make_previews(src_dir)
  File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/make_previews.py", line 81, in _make_previews
    img2vid(_dir)  # , _dir + ".mp4"
  File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/img2vid.py", line 161, in img2vid
    im = Image.open(sorted_listdir(input_dirs[0])[0])
  File "/home/cooper/.local/lib/python3.8/site-packages/PIL/Image.py", line 2656, in open
    raise IOError("cannot identify image file %r"
OSError: cannot identify image file '/mnt/d/timelapse 2021-bin-1/2021-01-26 honeysuckle night_ARW_ARW_xmp/DSC00959.xmp'

renumber() does not catch out of space error

Traceback (most recent call last):
File "/home/cooper/.local/bin/renumber", line 8, in
sys.exit(main())
File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/cli/renumber__main__.py", line 78, in main
renumber(
File "/home/cooper/.local/lib/python3.8/site-packages/frameoverframe/renumber.py", line 199, in renumber
shutil.copy2(src, dst)
File "/usr/lib/python3.8/shutil.py", line 432, in copy2
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "/usr/lib/python3.8/shutil.py", line 272, in copyfile
_fastcopy_sendfile(fsrc, fdst)
File "/usr/lib/python3.8/shutil.py", line 169, in _fastcopy_sendfile
raise err
File "/usr/lib/python3.8/shutil.py", line 149, in _fastcopy_sendfile
sent = os.sendfile(outfd, infd, offset, blocksize)
OSError: [Errno 5] Input/output error: '/mnt/j/timelapse 2021-overflow-one/2021-06-04 iris-lens_JPG/2021-06-04 iris-lens_JPG_03188.JPG' -> '/mnt/j/timelapse 2021-overflow-one/2021-06-04 iris-lens_JPG_renumbered_0314bc5f/2021-06-04 iris-lens_JPG_03563.JPG'

enfuse_batch - NoneType found -- when enfuse not installed

Command input: enfuse_batch enfuse 3 input dir

File "/home/charleslinux/.local/bin/enfuse_batch", line 8, in
sys.exit(main())
File "/home/charleslinux/.local/lib/python3.8/site-packages/frameoverframe/cli/enfuse_batch__main__.py", line 65, in main
process_dir(args.num, args.hardmask, args.shuffle_frames, args.skip_frames,
File "/home/charleslinux/.local/lib/python3.8/site-packages/frameoverframe/enfuse_batch.py", line 227, in process_dir
enfuse(image_path, output_file, counter, hardmask)
File "/home/charleslinux/.local/lib/python3.8/site-packages/frameoverframe/enfuse_batch.py", line 64, in enfuse
print('calling :' + ' '.join(sys_call))
TypeError: sequence item 0: expected str instance, NoneType found

align_image_stack_sequence

crashes - replacing quotelib dumps

File "/Users/cooper/homebrew/lib/python3.9/site-packages/frameoverframe/vid2img.py", line 54, in vid2img for item in infiles: NameError: name 'infiles' is not defined

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.