aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2012-01-05 01:04:14 +0100
committerStefano Sabatini <stefasab@gmail.com>2012-01-07 22:26:46 +0100
commit9997d41672478424b6ef8dfd924b8e9192f750c0 (patch)
treee3d59e71918deef3ed7671501d9801f314b695c9 /doc
parent78c47e0a1ef15ae6d12d7494b3757e334c70759e (diff)
downloadffmpeg-9997d41672478424b6ef8dfd924b8e9192f750c0.tar.gz
ffprobe: add support to video frame information printing
Add -show_frames option to ffprobe. Partially based on the work of Thomas Kuehnel <kuehnelth@googlemail.com> for SOCIS 2011. The wicked idea of creating a special "packets_and_frames" container for structured formats (JSON and XML) comes from Clément.
Diffstat (limited to 'doc')
-rw-r--r--doc/ffprobe.texi7
-rw-r--r--doc/ffprobe.xsd32
2 files changed, 39 insertions, 0 deletions
diff --git a/doc/ffprobe.texi b/doc/ffprobe.texi
index 2a9b73f7cd..a49c3f803c 100644
--- a/doc/ffprobe.texi
+++ b/doc/ffprobe.texi
@@ -113,6 +113,13 @@ stream.
The information for each single packet is printed within a dedicated
section with name "PACKET".
+@item -show_frames
+Show information about each video frame contained in the input multimedia
+stream.
+
+The information for each single frame is printed within a dedicated
+section with name "FRAME".
+
@item -show_streams
Show information about each media stream contained in the input
multimedia stream.
diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
index 93da1d4429..d6947649ff 100644
--- a/doc/ffprobe.xsd
+++ b/doc/ffprobe.xsd
@@ -9,6 +9,7 @@
<xsd:complexType name="ffprobeType">
<xsd:sequence>
<xsd:element name="packets" type="ffprobe:packetsType" minOccurs="0" maxOccurs="1" />
+ <xsd:element name="frames" type="ffprobe:framesType" minOccurs="0" maxOccurs="1" />
<xsd:element name="streams" type="ffprobe:streamsType" minOccurs="0" maxOccurs="1" />
<xsd:element name="format" type="ffprobe:formatType" minOccurs="0" maxOccurs="1" />
<xsd:element name="error" type="ffprobe:errorType" minOccurs="0" maxOccurs="1" />
@@ -21,6 +22,12 @@
</xsd:sequence>
</xsd:complexType>
+ <xsd:complexType name="framesType">
+ <xsd:sequence>
+ <xsd:element name="frame" type="ffprobe:frameType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
<xsd:complexType name="packetType">
<xsd:attribute name="codec_type" type="xsd:string" use="required" />
<xsd:attribute name="stream_index" type="xsd:int" use="required" />
@@ -35,6 +42,31 @@
<xsd:attribute name="flags" type="xsd:string" use="required" />
</xsd:complexType>
+ <xsd:complexType name="frameType">
+ <xsd:attribute name="media_type" type="xsd:string" use="required"/>
+ <xsd:attribute name="key_frame" type="xsd:int" use="required"/>
+ <xsd:attribute name="pts" type="xsd:long" />
+ <xsd:attribute name="pts_time" type="xsd:float"/>
+ <xsd:attribute name="pkt_pts" type="xsd:long" />
+ <xsd:attribute name="pkt_pts_time" type="xsd:float"/>
+ <xsd:attribute name="pkt_dts" type="xsd:long" />
+ <xsd:attribute name="pkt_dts_time" type="xsd:float"/>
+ <xsd:attribute name="pkt_pos" type="xsd:long" />
+
+ <!-- video attributes -->
+ <xsd:attribute name="width" type="xsd:long" />
+ <xsd:attribute name="height" type="xsd:long" />
+ <xsd:attribute name="pix_fmt" type="xsd:string"/>
+ <xsd:attribute name="sample_aspect_ratio" type="xsd:string"/>
+ <xsd:attribute name="pict_type" type="xsd:string"/>
+ <xsd:attribute name="coded_picture_number" type="xsd:long" />
+ <xsd:attribute name="display_picture_number" type="xsd:long" />
+ <xsd:attribute name="interlaced_frame" type="xsd:int" />
+ <xsd:attribute name="top_field_first" type="xsd:int" />
+ <xsd:attribute name="repeat_pict" type="xsd:int" />
+ <xsd:attribute name="reference" type="xsd:int" />
+ </xsd:complexType>
+
<xsd:complexType name="streamsType">
<xsd:sequence>
<xsd:element name="stream" type="ffprobe:streamType" minOccurs="0" maxOccurs="unbounded"/>