将 ffprobe 与 Python 一起使用时无法识别文件类型
File type not recognized when using ffprobe with Python
这是我的 python 脚本:
#!/usr/bin/python3
import os, sys, subprocess, shlex, re
from subprocess import call
def probe_file(filename):
cmnd = ['ffprobe', '-show_packets', '-show_frames', '-print_format', filename]
p = subprocess.Popen(cmnd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print filename
out, err = p.communicate()
print "Output:"
print out
if err:
print "Error:"
print err
probe_file(sys.argv[1])
运行 使用此命令:
python parse_frames_and_packets.py mux_test.ts
我收到以下错误输出:
Unknown output format with name 'mux_test.ts'
在Python中使用ffprobe时可以不使用.ts文件类型吗?因为我 运行 ffprobe 单独使用了这个确切的文件并且它工作正常。
有人有什么建议吗?
编辑:
它似乎无法识别所有类型的视频,而不仅仅是传输流(我只是用 .avi 尝试并得到相同的响应)。
-print_format
(或 -of
别名)需要一种格式。可用格式有:default、compact、csv、flat、ini、json、xml.
示例:
ffprobe -loglevel error -show_streams -print_format csv=p=0 input.mkv
有关详细信息,请参阅 ffprobe
documentation。
这是我的 python 脚本:
#!/usr/bin/python3
import os, sys, subprocess, shlex, re
from subprocess import call
def probe_file(filename):
cmnd = ['ffprobe', '-show_packets', '-show_frames', '-print_format', filename]
p = subprocess.Popen(cmnd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print filename
out, err = p.communicate()
print "Output:"
print out
if err:
print "Error:"
print err
probe_file(sys.argv[1])
运行 使用此命令:
python parse_frames_and_packets.py mux_test.ts
我收到以下错误输出:
Unknown output format with name 'mux_test.ts'
在Python中使用ffprobe时可以不使用.ts文件类型吗?因为我 运行 ffprobe 单独使用了这个确切的文件并且它工作正常。
有人有什么建议吗?
编辑: 它似乎无法识别所有类型的视频,而不仅仅是传输流(我只是用 .avi 尝试并得到相同的响应)。
-print_format
(或 -of
别名)需要一种格式。可用格式有:default、compact、csv、flat、ini、json、xml.
示例:
ffprobe -loglevel error -show_streams -print_format csv=p=0 input.mkv
有关详细信息,请参阅 ffprobe
documentation。