trash
def convert_video_progress_bar(self, manager, cmd):
    name = self.path.rsplit(os.path.sep, 1)[-1]
    # Run ffmpeg
    proc = expect.spawn(cmd, encoding='utf-8')
    pbar = None
    try:
        # extract the total number of frames 
        proc.expect(pattern_duration)
        total = sum(map(lambda x: float(
            x[1])*60**x[0], enumerate(reversed(proc.match.groups()[0].strip().split(':')))))
        cont = 0
        # keeps track of the progress to show it to the user
        pbar = manager.counter(
            total=100,
            desc=name,
            unit='%',
            bar_format=BAR_FMT,
            counter_format=COUNTER_FMT,
            leave=False
        )
        # infinite loop
        while True:
            # look for a progress indicator, and extract the frame count
            proc.expect(pattern_progress)
            progress = sum(map(lambda x: float(
                x[1])*60**x[0], enumerate(reversed(proc.match.groups()[0].strip().split(':')))))
            # compute the percentage complete
            percent = progress/total*100
            # update the counter, to show the user
            pbar.update(percent-cont)
            cont = percent
    # because of the infinite loop, 
    # `proc.expect` will throw an error once ffmpeg has completed.
    # catch that error, and clean things up
    except expect.EOF:
        traceback.print_exc()
    finally:
        if pbar is not None:
            pbar.close()
    proc.expect(expect.EOF)
    res = proc.before
    res += proc.read()
    # check to see if ffmpeg threw and error
    exitstatus = proc.wait()
    if exitstatus:
        raise ffmpeg.Error('ffmpeg', '', res)
Create a post

Ask specific questions about how to code something in python

Python docs (tutorial)
Intro to programming - University of Helsinki

General python discussion on lemmy.ml

Create Post From:
lemmy.ml

  • 1 user online
  • 1 user / day
  • 1 user / week
  • 1 user / month
  • 4 users / 6 months
  • 25 subscribers
  • 4 Posts
  • 1 Comment
  • Modlog