ESREPORT(1)

πŸ’– ESREPORT(1) πŸ’–

ok bestie so this is esreport, a General Commands Manual page, and it's literally about reporting on the contents of an ES. yes that's the whole vibe. let's get into it ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

esmerge [-err stdout] [-err stderr] [-verbose | -v] [-quiet | -q]
        [-frames | -findfields | -afd | -es] [-framesize] [-frametype]
        [-x] [-max max-units | -m max_units] [-pes | -ts] [-pesreport]
        [-h264 | -avc | -h262 | -avs] in_file | -stdin

(and yes, the synopsis really does say esmerge β€” I'm not touching it, that's what it says, character for character, periodt πŸ’…)


🌸 DESCRIPTION 🌸

So what does it do? It reports on the content of an elementary stream, and that elementary stream can have H.264 (aka MPEG-4/AVC), H.262 (aka MPEG-2) or AVS video data in it. That's it. That's the job. and it does it well 🫢


πŸŽ€ Files πŸŽ€

  • in_file β€” this is your Elementary Stream file. but like, see -stdin below, because sometimes the file isn't a file at all, iykyk 🌈

πŸ’œ What to report πŸ’œ

By default it reports on H.262 items, AVS frames or H.264 NAL units. But you have choices, bestie. Other options are:

  • -frames β€” report by frames. this is the default for AVS, no cap.
  • -findfields β€” report on any fields in the data. lowkey ignored for AVS.
  • -afd β€” report (just) on AFD changes in H.262. ignored for the other types of file, so don't come crying to it about H.264 πŸ™ˆ
  • -es β€” report on ES units.

Reporting on frames may be modified by these two iconic little switches:

  • -framesize β€” report on the sizes of frames (mean, etc.)
  • -frametype β€” report on the numbers of different type of frame.
ngl, in fact, both of these imply -frame. that's just how it is 🫢

✨ Switches ✨

  • -err stdout β€” write error messages to standard output. this is the default ✨
  • -err stderr β€” write error messages to standard error (the Unix traditional way, very vintage of you πŸ’…)
  • -stdin β€” input from standard input, instead of a file.
  • -v, -verbose β€” for H.262 data, output information about the data in each MPEG-2 item. for ES units, output information about the data in each ES unit. ignored for H.264 data. (it said what it said 😭)
  • -q, -quiet β€” only output summary information (i.e., the number of entities in the file, statistics, etc.). the low-info girlie mode 🌸
  • -x β€” show details of each NAL unit as it is read. every single one. it's giving thorough πŸ’–
  • -stdin β€” take input from <stdin>, instead of a named file. (yes, again. it's listed twice. I'm keeping both, that's the rule and I respect the rule πŸ‘‘)
  • -max max_units, -m max_units β€” maximum number of NAL units/MPEG-2 items/AVS frames/ES units to read. if -frames, then the program will stop after that many frames. if reading 'frames', MPEG-2 and AVS will also count sequence headers and sequence end. so like, count carefully bestie 🧚
  • -pes, -ts β€” the input file is TS or PS, to be read via the PES to ES reading mechanisms. fancy πŸ’…
  • -pesreport β€” report on PES headers. this one implies -pes and -q. it's an all-in-one, we love efficiency πŸ”₯

🌈 Stream type 🌈

Okay so here's the situation: 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, H.262 or AVS data. but β€” and this is the important part β€” this process may occasionally come to the wrong conclusion. 😭 in which case the user can override the choice using the following switches.

And 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 like, speak up bestie, the program is trusting you 🫢

  • -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 page bestie, you ate that πŸ’…βœ¨

this absolute banger of a manpage comes from Debian, dated October 28, 2015 β€” iconic behavior, honestly, she's been serving since 2015 and she's still here πŸ‘‘πŸ’–πŸ¦‹