Ffmpeg ffprobe或avprobe在JSON输出中返回纯文本错误

Ffmpeg ffprobe或avprobe在JSON输出中返回纯文本错误,ffmpeg,ffprobe,avconv,avprobe,Ffmpeg,Ffprobe,Avconv,Avprobe,我正在运行avprobe以获取有关JSON中视频的流信息 avprobe-loglevelquiet-show_格式-show_streams file.m4v-of json 这基本上与ffprobe或ffmpeg-i完全相同(我得到了相同的错误) ffprobe-loglevelquiet-show_format-show_streams file.m4v-print_format json 该命令大部分时间都有效。。。然而,偶尔我会有一个视频,其中有一个奇怪的流是“不受支持的”,我会得到像

我正在运行
avprobe
以获取有关
JSON
中视频的流信息

avprobe-loglevelquiet-show_格式-show_streams file.m4v-of json

这基本上与
ffprobe
ffmpeg-i
完全相同(我得到了相同的错误)

ffprobe-loglevelquiet-show_format-show_streams file.m4v-print_format json

该命令大部分时间都有效。。。然而,偶尔我会有一个视频,其中有一个奇怪的流是“不受支持的”,我会得到像这样的东西(缩写)

当我运行该命令时,我返回了
JSON
+纯文本中的一个错误,这使得结果无效
JSON
,我必须稍后“清理”

我正在从输出
-loglevelquiet
中抑制错误,但是错误仍然显示出来

如何让
avprobe/ffprobe
不显示此错误,从而返回正确的
JSON
对象


更长的输出示例
ffprobe
,来源于MacOS
avprobe
,源代码,Ubuntu Linux
您看到的是STDOUT和STDERR的输出。如果您想为输入流2过滤掉id为94213的
不受支持的编解码器,例如,您可以通过在bash中将STDERR输出重定向到/dev/null来过滤掉它:


avprobe-loglevel quiet-show_format-show_streams file.m4v-of json 2>/dev/null

选项在输入文件之前,尽管它不会对您的情况产生影响。请显示一个文件的完整
ffprobe
控制台输出,该文件不包含
-loglevel quiet
,该文件给出了
不受支持的编解码器
消息。“完整”输出与没有此“问题”的文件完全相同。。。唯一的区别是
元数据:
部分和
JSON
(如文章所示)之间的区别即使我抑制了错误,输入流2的id为94213的错误
不受支持的编解码器也被抛出。我更感兴趣的是完整输出中应该出现的版本信息。我更新了帖子…那么@JustinJenkins你找到解决方案了吗?显然两年后我也有同样的问题
Unsupported codec with id 94213 for input stream 2
{  "format" : {
    "filename" : "file.m4v",
    "nb_streams" : 3,
    "format_name" : "mov,mp4,m4a,3gp,3g2,mj2" ...
ffprobe version 0.9.1-subsplash, Copyright (c) 2007-2012 the FFmpeg developers
  built on Feb  5 2012 01:35:36 with gcc 4.2.1 (Apple Inc. build 5664)
  configuration: --prefix=/Volumes/Ramdisk/sw --as=yasm --extra-version=subsplash --disable-shared --enable-static --disable-ffplay --disable-ffserver --enable-gpl --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libfaac --enable-libvorbis --enable-libtheora --enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --arch=x86_64 --enable-runtime-cpudetect --enable-nonfree
  libavutil    51. 32. 0 / 51. 32. 0
  libavcodec   53. 42. 4 / 53. 42. 4
  libavformat  53. 24. 2 / 53. 24. 2
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 53. 0 /  2. 53. 0
  libswscale    2.  1. 0 /  2.  1. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file.m4v':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isomavc1
    creation_time   : 2012-01-01 06:38:43
    encoder         : HandBrake 0.9.5 2011010300
  Duration: 00:30:47.53, start: 0.000000, bitrate: 1558 kb/s
    Chapter #0.0: start -0.066733, end 17.784433
    Metadata:
      title           : Chapter  1

...

    Stream #0:2(und): Subtitle: mov_text (text / 0x74786574)
    Metadata:
      creation_time   : 2012-01-01 06:38:43
      handler_name    : 
Unsupported codec with id 94213 for input stream 2
{

...
avprobe version 10_alpha1-6:10~~git20130307.4be368b-1~quantal1, Copyright (c) 2007-2013 the Libav developers
  built on Mar  7 2013 22:12:44 with gcc 4.7 (Ubuntu/Linaro 4.7.2-2ubuntu1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file.m4v':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isomavc1
    creation_time   : 2012-01-01 06:38:43
    encoder         : HandBrake 0.9.5 2011010300
  Duration: 00:30:47.53, start: 0.000000, bitrate: 1558 kb/s
    Chapter #0.0: start -0.066733, end 17.784433
    Metadata:
      title           : Chapter  1

...

    Stream #0.2(und): Subtitle: text / 0x74786574
    Metadata:
      creation_time   : 2012-01-01 06:38:43
Unsupported codec with id 94213 for input stream 2
{

...