【问题标题】:Using FFprobe in Python在 Python 中使用 FFprobe
【发布时间】:2018-06-24 14:47:49
【问题描述】:

如何在 python 脚本中使用 FFprobe,同时将输出导出为 csv 文件?

我要执行的命令是:

ffprobe -i file_name -show_frames -select_streams v:1 -print_format csv > filename.csv 

看了其他类似问题的帖子,稍微改了一下:

def probe_file(filename):
    cmnd = ['ffprobe', '-i',filename, '-show_frames', '-select_streams', 'a', '-print_format', 'csv']
    p = subprocess.Popen(cmnd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    print filename
    out, err =  p.communicate()
    print "==========output=========="
    print out
    if err:
        print "========= error =r======="
        print err

但是,我似乎无法让 "> filename.csv" 工作。

分析视频后,我希望所有输出为 csv 文件,命名与文件名相同

有人知道我该如何处理吗?

提前致谢

【问题讨论】:

    标签: python csv ffmpeg ffprobe


    【解决方案1】:

    如果您希望 python 可以使用数据(作为列表的列表):

    data = [l.split(',') for l in out.decode('ascii').splitlines()]
    

    如果您只想将数据转储到文件中:

    with open("{}.csv".format(filename), "w") as f:
        f.write(out.decode('ascii'))
    

    请注意,我使用的是 Python 3,因此 decode()s(outbytes,必须解码)。您显然使用的是 Python 2,所以 decode()s 可能不是必需的。

    【讨论】:

      猜你喜欢
      • 2017-06-03
      • 2012-04-11
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 2020-12-02
      • 2022-07-04
      • 2017-05-08
      相关资源
      最近更新 更多