Opened 5 years ago

Closed 3 years ago

#3838 closed defect (needs_more_info)

ffprobe's "fully_qualified" XML output does not namespace all elements

Reported by: misty Owned by:
Priority: normal Component: ffprobe
Version: unspecified Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

ffprobe's XML output features a "fully_qualified" option, which is documented as follows:

fully_qualified, q

If set to 1 specify if the output should be fully qualified. Default value is 0. This is required for generating an XML file which can be validated through an XSD file.

However, when this option is set, only the root <ffprobe> element is namespaced. All other elements are left unaltered, so they will not be interpreted as being in the same namespace as the parent element. Here's an example:

Regular output:

<?xml version="1.0" encoding="UTF-8"?>
<ffprobe>
    <format filename="/Users/mistydemeo/image.png" nb_streams="1" nb_programs="0" format_name="image2" format_long_name="image2 sequence" start_time="0.000000" duration="0.040000" probe_score="50"/>
</ffprobe>

Fully-qualified output:

<?xml version="1.0" encoding="UTF-8"?>
<ffprobe:ffprobe xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:ffprobe='http://www.ffmpeg.org/schema/ffprobe' xsi:schemaLocation='http://www.ffmpeg.org/schema/ffprobe ffprobe.xsd'>
    <format filename="/Users/mistydemeo/image.png" nb_streams="1" nb_programs="0" format_name="image2" format_long_name="image2 sequence" start_time="0.000000" duration="0.040000" probe_score="50"/>
</ffprobe:ffprobe>

The fully-qualified example was generated with the "-print_format xml=fully_qualified=1 -show_format" options.

Change History (4)

comment:1 Changed 5 years ago by cehoyos

To make this a valid ticket, please provide your ffprobe command line that allows to reproduce the issue together with the complete, uncut console output.

comment:2 Changed 5 years ago by misty

Command:

ffprobe -i image.png -print_format xml=fully_qualified=1 -show_format

stdout:

<?xml version="1.0" encoding="UTF-8"?>
<ffprobe:ffprobe xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:ffprobe='http://www.ffmpeg.org/schema/ffprobe' xsi:schemaLocation='http://www.ffmpeg.org/schema/ffprobe ffprobe.xsd'>
    <format filename="image.png" nb_streams="1" nb_programs="0" format_name="image2" format_long_name="image2 sequence" start_time="0.000000" duration="0.040000" probe_score="50"/>
</ffprobe:ffprobe>

stderr:

ffprobe version N-41239-g6a44699 Copyright (c) 2007-2014 the FFmpeg developers
  built on Aug  6 2014 15:09:21 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-ffplay --enable-openssl --enable-libcaca
  libavutil      52. 98.100 / 52. 98.100
  libavcodec     55. 73.100 / 55. 73.100
  libavformat    55. 51.101 / 55. 51.101
  libavdevice    55. 13.102 / 55. 13.102
  libavfilter     4. 11.102 /  4. 11.102
  libavresample   1.  3.  0 /  1.  3.  0
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 19.100 /  0. 19.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, image2, from 'image.png':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: png, rgb24, 239x90, 25 tbr, 25 tbn, 25 tbc

comment:3 Changed 5 years ago by saste

Can you provide an example of how you would like to see the tag names? Also, q=1 is meant to allow validation with XSD tools (e.g. xmllint), what tools are failing to parse the generated XML? Why do you need to fully qualify all the contained elements?

comment:4 Changed 3 years ago by cehoyos

  • Resolution set to needs_more_info
  • Status changed from new to closed

Please reopen this ticket if you can answer Stefano's questions.

Note: See TracTickets for help on using tickets.