mirror of
https://github.com/iluvcapra/wavinfo.git
synced 2025-12-31 08:50:41 +00:00
37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
import os.path
|
|
import sys
|
|
import subprocess
|
|
from subprocess import PIPE
|
|
import json
|
|
|
|
FFPROBE = 'ffprobe'
|
|
|
|
|
|
def ffprobe(path):
|
|
arguments = [FFPROBE, "-of", "json", "-show_format", "-show_streams", path]
|
|
if int(sys.version[0]) < 3:
|
|
process = subprocess.Popen(arguments, stdout=PIPE)
|
|
process.wait()
|
|
if process.returncode == 0:
|
|
output = process.communicate()[0]
|
|
if output:
|
|
output_str = output.decode('utf-8')
|
|
return json.loads(output_str)
|
|
else:
|
|
return None
|
|
else:
|
|
process = subprocess.run(arguments, stdin=None, stdout=PIPE, stderr=PIPE)
|
|
if process.returncode == 0:
|
|
output_str = process.stdout.decode('utf-8')
|
|
return json.loads(output_str)
|
|
else:
|
|
return None
|
|
|
|
|
|
def all_files():
|
|
for dirpath, _, filenames in os.walk('tests/test_files'):
|
|
for filename in filenames:
|
|
_, ext = os.path.splitext(filename)
|
|
if ext in ['.wav', '.WAV']:
|
|
yield os.path.join(dirpath, filename)
|