3

I was writing a module to create random screenshots from a video and used subprocess.Popen to run multiple commands in parallel but this leads to terminal refusing from showing any input once the python program is finished running. But it still accepts most inputs given from the keyboard it just doesn't display it.

Only if I type the reset command terminal starts working fine This happened on ssh with putty and other ssh clients even ssh with powershell on windows and directly running on terminal with VNC

But without ssh directly running the same command on windows ssh works fine and and inputs are visible

here's a gif example for whats happening enter image description here

and code to replicate it

#!/usr/bin/env python3.8
from subprocess import Popen

def create_screenshots():

    commands = ['ffmpeg -hide_banner -loglevel panic -ss 329  -i "/home/user/file.mkv" -y -vframes 1   "/home/user/file.329.frame.png"',
                'ffmpeg -hide_banner -loglevel panic -ss 312  -i "/home/user/file.mkv" -y -vframes 1   "/home/user/file.312.frame.png"',
                'ffmpeg -hide_banner -loglevel panic -ss 533  -i "/home/user/file.mkv" -y -vframes 1   "/home/user/file.533.frame.png"',
                'ffmpeg -hide_banner -loglevel panic -ss 444  -i "/home/user/file.mkv" -y -vframes 1   "/home/user/file.444.frame.png"',
                'ffmpeg -hide_banner -loglevel panic -ss 411  -i "/home/user/file.mkv" -y -vframes 1   "/home/user/file.411.frame.png"',
                'ffmpeg -hide_banner -loglevel panic -ss 413  -i "/home/user/file.mkv" -y -vframes 1   "/home/user/file.413.frame.png"']
    screenshot_files = []
    processes = [Popen(command, shell=True) for command in commands]
    for process in processes:
        process.wait()
    
    return screenshot_files


create_screenshots()

1 Answer 1

7

After weeks of searching finally found the answer to this right after I posted the question

this answer is what I was looking for https://stackoverflow.com/a/59148094

not sure if there is a better way to handle this with Popen but adding -nostdin flag to ffmpeg command fixed the issue I was having

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.