情况: 我正在使用ffmpeg(通过.net)来保存视频文件.我可以从ffmpeg获得输出,但我不知道如何自定义输出以获得更好的结果.
我的问题: 我的问题是,成功和失败的操作之间没有一定的区别.
最后一道成功:
视频:1006kB音频:134kB字幕:0全局标题:0kB多路复用开销0.943510%
最后一行失败
c:\ x\test-9-8/30/2012-9:29:56-AM.mp4:参数无效
rtmp://cdn.tv/cdn-live39/ definst/stream01:发生未知错误
我的问题: 是否有一个选项(或命令行参数)来添加某种返回代码(200:成功,500:错误等)
谢谢!
PS:我看到了这个话题如何判断ffmpeg是否有误?但是在最后一行之前/之后没有数字.我认为最后一个版本不再有数字了.
您可以只检查 ffmpeg 返回的退出代码。成功时应该返回 0,其他任何值都意味着失败。
我知道这已经很老了,但是当我遇到并没有找到其他可靠的答案并经过更多测试后:
检查返回 0 的建议通常是一个很好的建议 - 但在所有情况下都没有帮助。检查文件是否存在的另一个想法也很好 - 但同样 - 在所有情况下都没有帮助。
例如,当输入文件是具有嵌入封面的 mp3 文件时,ffmpeg 会(在我的测试中)使用此图像并将该图像提取为(无法使用的)视频文件。
我现在要做的是有调试级别的输出并解析它的复用数据包的数量。
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\)
(这假设每个视频都有超过 9 个数据包 - 当然可以针对真正的短视频进行优化)。
当然,对于 RTMP 或其他设置,输出可能会有所不同,但我认为解析完整的输出流是唯一的选择。
归档时间: |
|
查看次数: |
10848 次 |
最近记录: |