.TH JANUS-PP-REC 1 .SH NAME janus-pp-rec \- Janus recordings post-processing utility. .SH SYNOPSIS .B janus-pp-rec [options] .IR source.mjr .IR [destination.[opus|ogg|mka|wav|webm|mkv|h264|srt]] .SH DESCRIPTION .B janus-pp-rec is a simple utility that allows you to post-process recordings generated by Janus plugins (e.g., VideoRoom or others). More specifically, since Janus recordings (.mjr files) are basically a structured dump of RTP packets, this utility reorders them all and extracts the frames in order to stick them together and save them to a playable media file. No transcoding is done. .TP The target file depends on the codec used in the recording: for instance, VP8 and VP9 frames can be converted to a either a .webm or .mkv file, while H.264 frames can only be converted to a .mp4 or .mkv file instead. Right now, you can convert VP8/VP9 recordings to .webm/.mkv, H.264/H.265/AV1 recordings to .mp4/.mkv, G.711/G.722 recordings to .wav, Opus recordings to .opus/.ogg/.mka, and Data Channel text recordings to .srt. Binary Data Channel recordings can be dumped to files of any extension. .SH OPTIONS .TP .BR \-h ", " \-\-help Print help and exit .TP .BR \-V ", " \-\-version Print version and exit .TP .BR \-F ", " \-\-file-extensions Only print the supported target file extensions per codec (default=off) .TP .BR \-j ", " \-\-json Only print JSON header (default=off) .TP .BR \-H ", " \-\-header Only parse .mjr header (default=off) .TP .BR \-p ", " \-\-parse Only parse and re-order packets (default=off) .TP .BR \-e ", " \-\-extended-json Only print extended JSON report (automatically enables --json) (default=off) .TP .BR \-m ", " \-\-metadata=metadata Save this metadata string in the target file .TP .BR \-i ", " \-\-ignore-first=count Number of first packets to ignore when processing, e.g., in case they're cause of issues (default=0) .TP .BR \-P ", " \-\-payload-type=pt Ignore all RTP packets that don't match the specified payload type (default=none) .TP .BR \-a ", " \-\-audiolevel-ext=id ID of the audio-levels RTP extension (default=none) .TP .BR \-v ", " \-\-videoorient-ext=id ID of the video-orientation RTP extension (default=none) .TP .BR \-d ", " \-\-debug-level=1-7 Debug/logging level (0=disable debugging, 7=maximum debug level; default=4) .TP .BR \-D ", " \-\-debug-timestamps Enable debug/logging timestamps (default=off) .TP .BR \-o ", " \-\-disable-colors Disable color in the logging (default=off) .TP .BR \-f ", " \-\-format=STRING Specifies the output format (overrides the format from the destination) (possible values="opus", "ogg", "mka", "wav", "webm", "mkv", "mp4", "srt") .TP .BR \-t ", " \-\-faststart For mp4 files write the MOOV atom at the head of the file (default=off) .TP .BR \-S ", " \-\-audioskew=milliseconds Time threshold to trigger an audio skew compensation, disabled if 0 (default=0) .TP .BR \-C ", " \-\-silence-distance=count RTP packets distance used to detect RTP silence suppression, disabled if 0 (default=0) .TP .BR \-r ", " \-\-restamp=count If the latency of a packet is bigger than the `moving_average_latency * (/1000)` the timestamps will be corrected, disabled if 0 (default=0) .TP .BR \-c ", " \-\-restamp\-packets=count Number of packets used for calculating moving average latency for timestamp correction. (default=10) .TP .BR \-n ", " \-\-restamp\-min\-th=milliseconds Minimum latency of moving average to reach before starting to correct timestamps. If the current latency is below this threshold the timestamps will not be changed. Below the threshold we ignore the moving average. (default=500) .SH EXAMPLES \fBjanus-pp-rec \-\-header rec1234.mjr\fR \- Parse the recordings header (shows metadata info) .TP \fBjanus-pp-rec \-\-parse rec1234.mjr\fR \- Parse the recordings packets without processing them .TP \fBjanus-pp-rec rec1234.mjr rec1234.webm\fR \- Convert a VP8 .mjr recording to a .webm file .TP \fBjanus-pp-rec \-\-restamp=1500 rec1234.mjr rec1234.opus\fR \- Convert audio .mjr recording to .opus while RTP correcting timestamps based on moving average latency .SH BUGS .TP If you think you found a bug or want to contribute a feature, you can issue or a pull request on https://github.com/meetecho/janus-gateway/issues. .TP Anyway, before doing that make sure you read the documentation at https://janus.conf.meetecho.com/docs/ and that it has not been discussed already at https://groups.google.com/forum/#!forum/meetecho-janus. We only use Github for code issues, and \fBNOT\fR for configuration or usage issues: use the group for that. .SH SEE ALSO .TP https://github.com/meetecho/janus-gateway \- Official repository .TP https://janus.conf.meetecho.com \- Demos and documentation .TP https://groups.google.com/forum/#!forum/meetecho-janus \- Community .TP https://www.meetecho.com/blog/ \- Tutorials and blog posts on Janus .SH AUTHORS Lorenzo Miniero (lorenzo@meetecho.com)