【发布时间】:2015-06-23 04:40:02
【问题描述】:
我正在使用这个脚本在 ffmpeg 中进行镜头检测。
ffprobe -show_frames -of compact=p=0 -f lavfi "movie=test.mp4,select=gt(scene\,0.3)"
我需要将输出写入文本文件,以便从 c 程序读取输出。我怎样才能做到这一点?任何帮助表示赞赏。
【问题讨论】:
我正在使用这个脚本在 ffmpeg 中进行镜头检测。
ffprobe -show_frames -of compact=p=0 -f lavfi "movie=test.mp4,select=gt(scene\,0.3)"
我需要将输出写入文本文件,以便从 c 程序读取输出。我怎样才能做到这一点?任何帮助表示赞赏。
【问题讨论】:
您将输出重定向到文件:
ffprobe -show_frames -of compact=p=0 -f lavfi "movie=test.mp4,select=gt(scene\,0.3)" > output.txt 2>&1
如果您想要 stdout 和 stderr 的单独文件,您可以这样做:
[..] > out.txt 2> err.txt
【讨论】:
2>&1 的东西。为什么,你有解释吗? 什么方式解决了常规>file重定向不起作用的问题?
stdout (1) 和stderr (2) 可以单独使用。 > 重定向 stdout (1) 到一个文件,2>&1 重定向 stderr (2) 到用于 (1) 的文件描述符的副本,因此正常输出和错误消息都写入同一个文件.一些 shell 有一个 &> 来重定向两个标准输出流。
ffmpeg 的情况下,stdout 可能用于视频输出,以便将其通过管道传输到其他进程。