Comments (3)
@Mz49 I just ended up using this.
import json
import subprocess
def _ffprobe(file_path):
command = (
'ffprobe -v quiet -print_format json -show_format -show_streams '
f'{file_path}'
)
result = subprocess.run(command.split(), capture_output=True)
if result.returncode == 0 and file_path.exists():
return json.loads(result.stdout)
raise RuntimeError(
f'FFProbe failed for {file_path}, output: {result.stderr}'
)
from ffprobe-python.
I'm doing something like this myself in another project and was about to suggest it:
cmd = "ffprobe -v quiet -print_format json -show_streams"
args = shlex.split(cmd)
args.append(info.FILENAME)
ffprobeOutput = subprocess.check_output(args).decode('utf-8')
ffprobeOutput = json.loads(ffprobeOutput)
If it simplifies parsing for you at all
from ffprobe-python.
If anyone's looking for a longer-term solution, I've:
- implemented the above
ffprobe -print_format json
command-line - enabled support for remote media streams (as the
ffprobe
program already does) - made the checks for file-existence optional
plus a bunch of other bug-fixes, features, and improvements, in a fork:
https://github.com/jboy/ffprobe3-python3
(Python3 only, sorry.)
from ffprobe-python.
Related Issues (13)
- ValueError: not enough values to unpack (expected at least 2, got 1) HOT 3
- ImportError: cannot import name 'FFProbe' from partially initialized module 'ffprobe' HOT 8
- Would like duration in milliseconds rather than rounded seconds.
- SRT protocol
- Error probing file HOT 6
- AttributeError: 'NoneType' object has no attribute 'groups' HOT 3
- Installing with pip is broken with setuptools 59.x.y
- ValueError: not enough values to unpack HOT 3
- Chapters HOT 3
- Trying to convert m4a to wav format using Python code from an AML pipeline. When run from an AML pipeline on a Compute Cluster it fails stating: ImportError: cannot import name 'FFProbe' from partially initialized module 'ffprobe'
- Parsing-Error when probing wav-files
- Support remote video files HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ffprobe-python.