ESDOTS(1)

πŸ’– ESDOTS(1) πŸ’–

okay bestie, so this one lives in the General Commands Manual, section 1, and the star of the show is esdots β€” yes, that's the one you'd cite as esdots(1) if you're being all formal at a party. πŸŽ€ let's get into it.

🌸 NAME 🌸

esdots β€” present the content of an ES as a sequence of characters

✨ SYNOPSIS ✨

esdots [-err stdout] [-err stderr] [-verbose | -v]
       [-max max_units | -m max_units] [-pes | -ts] [-hasheos] [-es]
       [-gop] [-fr frame_rate] in_file | -stdin

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so what this does is present the content of an H.264 (MPEG-4/AVC), H.262 (MPEG-2) or AVS elementary stream as a sequence of characters, where each character represents access units / MPEG-2 items / AVS items. it's giving "decode-adjacent but make it vibes". πŸ’…

ngl this part matters: for H.264 it is access units and not frames that get represented, and for H.262 it is items and not pictures. the way that distinction lives rent free in my head, fr fr. 🫢

πŸ“ Files

  • in_file β€” is an H.222 Transport Stream file (but bestie, see -stdin) 🌈

πŸŽ€ Switches

  • -err stdout β€” write error messages to standard output (this is the default, so it's the main character unless you say otherwise)
  • -err stderr β€” write error messages to standard error (the Unix traditional way, old money behavior πŸ’€)
  • -stdin β€” input from standard input, instead of a file
  • -v, -verbose β€” output extra information about packets (spill the tea about every packet ✨)
  • -q, -quiet β€” only output error messages (silence is golden, no cap)
  • -max max_units, -m max_units β€” maximum number of entities to read
  • -pes, -ts β€” the input file is TS or PS, to be read via the PES->ES reading mechanisms
  • -hasheos β€” print a # on finding an EOS (end-of-stream) NAL unit rather than stopping (only applies to H.264, so don't come for it about anything else πŸ™ˆ)
  • -es β€” report ES units, rather than any 'higher' unit (not necessarily supported for all file types, so lowkey don't assume)
  • -gop β€” show the duration of each GOP (for MPEG-2 steams) OR the distance between random access points (H.264) β€” two for one, iconic πŸ‘‘
  • -fr β€” set the video frame rate (default = 25 fps)

πŸ” Stream type:

so here's the tea. if input is from a file, then the program will look at the start of the file to determine if the stream is H.264 or H.262 data. this process may occasionally come to the wrong conclusion 😭, in which case the user can override the choice using the following switches.

for AVS data, the program will never guess correctly, so the user must specify the file type, using -avs. periodt. πŸ’…

if input is from standard input (via -stdin), then it is not possible for the program to make its own decision on the input stream type. instead, it defaults to H.262, and relies on the user indicating if this is wrong. so if you're piping in something else, that's on you to say so. 🫢

  • -h264, -avc β€” force the program to treat the input as MPEG-4/AVC
  • -h262 β€” force the program to treat the input as MPEG-2
  • -avs β€” force the program to treat the input as AVS

πŸ’œ SEE ALSO πŸ’œ


and that's the whole thing bestie, you ate. πŸ“ this page came from Debian and it's dated October 28, 2015 β€” so yeah, a little vintage, but we love her anyway. go read your streams, mwah πŸ’‹βœ¨