Home
Softono

Video Containers Debugging Tools

Open source BSD-3-Clause
52
Stars
7
Forks
0
Issues
4
Watchers
2 years
Last Commit

 About Video Containers Debugging Tools

A set of command lines to debug video streaming files like mp4 (MPEG-4 Part 14), ts (MPEG-2 Part 1), fmp4 in Dash, HLS, or MSS, with or without DRM.

Platforms

Web Self-hosted

Links

Need Help Installing Video Containers Debugging Tools?

We provide expert installation service for this software. Our team will install, configure, and secure Video Containers Debugging Tools on your server. plans start at just $30.

Video Containers Debugging Tools

View on GitHub

Introduction

A set of command lines examples to help debugging video streaming files like mp4, ts ,fmp4 in Dash, HLS, or MSS, with or without DRM.

The tools

  • FFprobe - A generic tool for media streaming debug
  • Mediainfo - A generic tool for media streaming info
  • TSDuck - A tool more specific for TS (MPEG-2 Part 1)
  • Bento4 - A tool more specific for MP4 (MPEG-4 Part 14)

Overview of the streams

ffprobe -i file.extension

# trace will output like a parser, it's useful for learning also check container structure such as fragmented mp4, mpegts programs...
ffprobe -v trace file.extension

mediainfo file.extension

tsdump file.ts
tsanalyze file.ts
tstables file.ts
# .. tsXXXX

mp4info file.mp4
mp4dump  # this is useful for fragmented mp4
# mp4XXXXX

Specific info from the streams

# -select_streams v is filtering only video streams
ffprobe -loglevel panic -select_streams v -show_entries "stream=start_pts,start_time,avg_frame_rate,r_frame_rate,codec_time_base" file.extension

# logging/printing HDR metada information from FFmpeg
# source: https://www.reddit.com/r/ffmpeg/comments/qidrc8/comment/i9lrj9u/?utm_source=reddit&utm_medium=web2x&context=3
ffprobe -loglevel quiet -read_intervals "%+#2" -select_streams v:0 -show_entries side_data "input.mkv" | egrep -m 1 -A 10 'Mastering display metadata' | grep -v 'Mastering display metadata' >/tmp/variables.txt
ffprobe -loglevel quiet -read_intervals "%+#2" -select_streams v:0 -show_entries side_data "input.mkv" | egrep -m 1 -A 2 'Content light level metadata' | grep -v 'Content light level metadata' >>/tmp/variables.txt
cat /tmp/variables.txt

Specific info from some frames

ffprobe -loglevel panic -select_streams v -show_entries "frame=pkt_pts,pkt_pts_time,pkt_duration,best_effort_timestamp,best_effort_timestamp_time" -read_intervals %+#5

Codec/Container parsing-like info from the stream


mediainfo --Details=1 file.extension

Video/Audio/ClosedCaptions/Container/Codec ffmpeg samples

https://samples.ffmpeg.org/