bavc / qctools

QCTools (Quality Control Tools for Video Preservation) is a free and open source software tool that helps users analyze and understand their digitized video files through use of audiovisual analytics and filtering. QCTools is funded by the National Endowment for the Humanities and the Knight Foundation, and is developed by the Bay Area Video Coalition.
http://www.bavc.org/qctools
Other
313 stars 41 forks source link

support showing logs in the graph view #291

Open dericed opened 7 years ago

dericed commented 7 years ago

ffprobe may soon (patch approval pending) support showing decoder logging data in ffprobe. This could allow qctools to show logging data from encodings that contain damage or cause decoding errors. The ffprobe data would show the logged message(s) as a sub-element of such as:

<frame media_type="video" stream_index="0" key_frame="1" pkt_pts="1024" pkt_pts_time="0.080000" pkt_dts="1024" pkt_dts_time="0.080000" best_effort_timestamp="1024" best_effort_timestamp_time="0.080000" pkt_duration="512" pkt_duration_time="0.040000" pkt_pos="40536" pkt_size="20238" width="320" height="240" pix_fmt="yuv422p10le" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0">
  <logs>
    <log context="prores" level="16" category="6" message="[prores @ 0x7f977c004a00] ac tex damaged 1031, 1024"/>
    <log context="prores" level="16" category="6" message="[prores @ 0x7f977c004a00] ac tex damaged 1027, 1024"/>
    <log context="prores" level="16" category="6" message="[prores @ 0x7f977c004a00] ac tex damaged 1034, 1024"/>
  </logs>
</frame>

Each log message can be associated to the timestamp of the parent .

The graph style used in QCTools currently wouldn't work well for displaying this, but we could have a graph which shows simple flags rather than a plot and when you mouse over the flag it could show a table of the log/@context and log/@message.

Some sample ffprobe xmls with this logging feature are at:

This feature would allow QCTools to reveal encoding errors in addition to its current analysis of the image contents.

Comments from onlookers?

kieranjol commented 7 years ago

I think it is a great idea, not sure how the graphs would look exactly - would it always show a spike for each error? I could see it being useful for formats such as FFV1 which can declare fixity mismatches. I'm sure dvanalyser is a better tool for DV, but ffmpeg shows pretty good error reporting for DV and having that show up as well would be nice. On a side note, I've never encountered those ac text errors before, interesting.

On Tue, Mar 14, 2017 at 7:23 PM, Dave Rice notifications@github.com wrote:

ffprobe may soon (patch approval pending) support showing decoder logging data in ffprobe. This could allow qctools to show logging data from encodings that contain damage or cause decoding errors. The ffprobe data would show the logged message(s) as a sub-element of such as:

Each log message can be associated to the timestamp of the parent .

The graph style used in QCTools currently wouldn't work well for displaying this, but we could have a graph which shows simple flags rather than a plot and when you mouse over the flag it could show a table of the log/@context https://github.com/context and log/@message https://github.com/message.

Some sample ffprobe xmls with this logging feature are at:

This feature would allow QCTools to reveal encoding errors in addition to its current analysis of the image contents.

Comments from onlookers?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/bavc/qctools/issues/291, or mute the thread https://github.com/notifications/unsubscribe-auth/ABEyviNipgj_PSmTv28uWHv7O33JNFc5ks5rlukdgaJpZM4MdCiQ .

dericed commented 7 years ago

Adding an example of frame logging with an FFV1 CRC error:

https://gist.github.com/dericed/a405df45a3b4a7fc7962e5cf1a1ef329

JeromeMartinez commented 7 years ago

XML is also created manually in QCTools, don't forget to update this part of the code (maybe there is a method for directly getting the XML form with FFmpeg API? would permit to trash the creation of hte XML in QCTools in case the XML is creating by QCTools instad of FFmpeg command line)

kieranjol commented 4 years ago

Am I right in saying this never made its way in in the end?