如何判断的ffmpeg出错或不?(How to tell if ffmpeg errored or

2019-09-21 23:07发布

现状:我使用的ffmpeg(通过.NET)来保存视频文件。 我可以从ffmpeg的输出,但我不知道我怎么可以自定义输出效果更佳。

我的问题:我的问题是,有成功和失败的操作之间没有一定的差异。

成功的最后一行:

视频:1006kB音频:134KB字幕:0全局头部:0KB路复开销0.943510%

从失败最后几行

C:\ X \测试-9-8 / 30 / 2012-9:29:56-AM.mp4:无效的参数

RTMP://cdn.tv/cdn-live39/ definst / stream01:出现未知错误

我的问题:是否有一个选项(或命令行参数)来添加某种返回代码(200:成功,500:错误等)

谢谢!

PS:我看到这个题目如何判断的ffmpeg出错? 但最后一行后/前没有号码。 我想,可是没有数了最后一个版本。

Answer 1:

我知道这是很老,但我遇到了,并没有发现其他可靠的答案,经过一番更多的测试:

与检查的0收益的建议是一般的好建议 - 但在所有情况下,并不能帮助。 与检查文件是否存在其他的想法也不错 - 但是 - 不能在所有情况下帮助。

例如,当输入文件是具有嵌入式封面MP3文件 - 那么做的ffmpeg(在我的测试)使用这个图像并抽取一个作为(不可用)的视频文件。

我现在做的是有debug级别的输出,并对其进行分析以多路复用的数据包的数量。

ffmpeg -i "wildlife.mp4" -c:v copy -an -sn "out.mp4" -y -loglevel debug 2> wildlife.txt

用正则表达式我搜索这样的文字:
Output stream .+ (video): [0-9][0-9]+ packets muxed \([0-9][0-9]+ bytes\)

(假定每个视频有超过900包 - 当然可以了非常短的视频进行优化)。

当然,对于RTMP或其他设置输出可能会有所不同,但我认为解析全输出流是唯一的选择。



Answer 2:

你可以只检查由ffmpeg的返回的退出代码。 它应该成功返回0,什么都意味着失败。



文章来源: How to tell if ffmpeg errored or not?
标签: ffmpeg