Quote filenames to handle paths with spaces in commands created with .compile()
#719
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
ffmpeg-python
's.compile()
method to generate FFmpeg commands doesn't quote or escape filenames with spaces, so it will generate commands like so:(Note that I edited escaped new lines into this example's output for readability, they don't exist in
.compile()
's output before or after merging this pull request.)Running that compiled command fails:
Solution
This pull request quotes filenames using
shlex.quote()
by wrapping filenames parsed by.compile()
's helper functions.As a result, the following command can run correctly because filenames with spaces were quoted:
(Again, escaped new lines were just added to this example for readability, this pull request does not add them to output.)