lavplay(1)
πΈ NAME πΈ
lavplay β playback and edit MJPEG video, bestie. Yes this is from the MJPEG tools manual, and yes you're about to become so normal about it. π
β¨ SYNOPSIS β¨
lavplay [options] lavfile1 [lavfile2 ... lavfileN]
Like, throw a bunch of files at it, it'll deal. π«Ά
π¦ DESCRIPTION π¦
okay so picture this: lavplay plays back video in MJPEG format β either quicktime or AVI β and it can do it on a zoran video-capture device, like the Miro/Pinnacle DC10(+), the Iomega Buz, or Linux Media Labs' LML33. OR it can do it in software mode using SDL. Options!! We love options. π
It also gives you the whole machinery for non-destructive editing of video, driven by an interactive front-end like glav(1). Head down to SEARCHING AND EDITING for the tea. π
π OPTIONS π
lavplay accepts the following options, and there are a LOT of them, so stay with me:
-p/--playback[S|C|H] β which playback mode we're on.S= software playback using SDL.H= hardware playback on the monitor (that's on-screen).C= hardware playback out to the video-out of the zoran video-capture device. And obviously,CandHonly work on computers that actually have zoran video-capture devices. No zoran, no hardware era, sorry bestie. π-Z/--full-screenβ full-screen playback. This works if you picked SDL- or onscreen-playback. β¨--sizeNxN β the size of the video window (default: size of the input video) when you're using software (SDL) or hardware onscreen playback.-a/--audionum β when to play audio.0means never. Otherwise it's a sum of:1: while playing forward2: while playing reverse4: even fast playing8: while pausing
Default is 7: forward/reverse/fast. And if 8 (pausing) is contained in there, lavplay will be very noisy β but it's genuinely useful when you want to edit by sound. π§
-z/--zoomβ zooms the video to fit the screen as good as possible. Slay. π-xβ exchange fields of an interlaced video. Try this if the video looks weird. It shouldn't be necessary with stuff captured usinglavrec(1), but it could be needed for other sources. π-s/--skipnum β skip num seconds of video at the beginning.-x/--exchange-fieldsβ invert field order (for videos which are recorded with wrong field order interlacing settings). Yes,-xshows up twice in this list, that's just how the page is, and we respect the lore. π-F/--flickerβ disable stills flicker reduction. Useful if you want to see stills exactly as they were recorded rather than flicker-free! Raw footage rights.-c/--synchronization[0|1] β enables (1) or disables (0) the use of sync corrections. Basically, you almost certainly want this. Disabling is really there for diagnostic purposes and not much else. So like, don't turn it off to be quirky. π«-H/--H-offsetnum,-V/--V-offsetnum β horizontal (-H) and vertical (-V) offset when using hardware playback. Offset plus width or height should be smaller than or equal to the playback device's maximum allowed size (DC10+:640x480or768x576,LML33/Marvel/Buz:720x480/576). Math check before you vibe check. π--s-x-offsetnum,--s-y-offsetnum β offset for the video window (from top left screen corner) when using hardware onscreen playback in non-fullscreen mode.--display:x.x β when using hardware fullscreen video playback (-pH), this setting specifies the video display to use for video display (default::0.0).-q/--no-quitβ makeslavplaystay alive at the end of the video (it won't quit). Useq<enter>on the command line to quit β see below, SEARCHING AND EDITING. It's giving "I'm not leaving the party". π-g/--gui-modeβ enables GUI-mode. Used byglavand Linux Video Studio. It'll output the current position in the video each frame, so thatglavor LVS can keep track of where we are in the video which is being played back. Communication! π«Ά-P/--preserve-pathnamesβ used byglavand Linux Video Studio. When editlists are created, the original pathnames for files are used, and not the canonicalised pathnames from the root directory. Useful if you've got things like automounters active that make directories with the same non-canonical name have different canonical names on different machines. iykyk. π-U/--use-writeβ use thewrite()system call rather than themmap()system call for audio writing to the sound device. This may fix some audio playback problems. π₯-n/--mjpeg-buffersnum β number of MJPEG-buffers. Default is32. Try changing this number if you have many lost frames. π-v/--verbosenum β verbosity level (0,1or2).
π± ENVIRONMENT VARIABLES π±
The following environment variables can be recognized by lavrec β yes, the page really says lavrec, we're just reporting the lore as written, don't come for me π:
LAV_VIDEO_DEVβ the video device. Default is/dev/video.LAV_AUDIO_DEVβ the audio device. Default is/dev/dsp.
π¬ SEARCHING AND EDITING π¬
lavplay can do way more than simple plain playback, bestie. It's also intended to be controlled using commands sent via stdin from a front-end like glav(1) or similar, more sophisticated tools. π
The most significant aspect of this functionality is the ability to create edit list files giving the playback sequence of an edited version of the input video. The edit list file can be read by any of the mjpegtools(1) (including lavplay!) wherever an actual video file would be acceptable. π
Such edit lists record only the original source file and the start and stop frames of the components of the edited video β not the video itself. So editing leaves the original files unchanged and requires only tiny amounts of data-movement. Iconic, lowkey efficient. β¨
The drawback? For the edit list to work, the original files must remain unchanged, and interactive play may be jumpy because the playback sequence "skipping about" between different parts of the original video sequence. It's giving chaotic playlist shuffle energy. π
If a stand-alone consolidated version of the edited video is required, it can be produced by running the lavtrans(1) utility on the edit list. π«Ά
Edit list files are plain text with a very simple syntax, so you can hand-edit them in a text-editor or write scripted editing tools. No cap.
β¨οΈ STDIN COMMANDS β¨οΈ
The commands accepted on standard input are as follows (and can of course be entered directly by command-line junkies):
+, -β goes to next/previous frame. Only makes sense when the video is paused.pNβ sets playback speed to N (N=...,-1,0,1, ...).a[01]β enables/disables audio playback.sNβ if N is a number, this means to go to frame N. If N is prefixed by a+or-, this means to go N frames back- or forward.om editlist [N1 N2 [N3 N4]]β opens a movie or editlist. A second and third argument can specify to only open a specific range of frames from this video (N1=-1means whole video).N3andN4can specify to show only a specific range of frames from the frames which were just opened (useful for trimming).w[as] fileβ save the current editlist (a) or the current selection (s) to a file.qβ quitlavplay.e[ou] N1 N2β cuts (u) or copies (o) framesN1-N2from the current editlist into an internal selection.epβ pastes the contents of the selection into the current position in the editlist.em N1 N2 N3β moves framesN1-N2to positionN3in the video.ed N1 N2β deletes framesN1-N2from the editlist.ea video N1 N2 N3β adds framesN1-N2of the video into positionN3within the editlist.N1=-1means to add the whole video.es N1 N2β sets the current viewable frames within the whole video toN1-N2. This is useful for trimming.
π BUGS π
Editlists record absolute pathnames. This more or less forces manual editing of the pathnames in them if it is desired to move editlists and source video files. So like, moving files around means hand-editing. Prepare yourself. π
lavplay really ought to make a decent job of detecting what playback options are feasible (on-screen hardware, video-out port hardware, software) and set the default playback mode appropriately. Alas, it does not. Not me being disappointed in a program. π
π AUTHOR π
This man page was written by Ronald Bultje. Shoutout, legend. π«Ά
If you have questions, remarks, problems or you just want to contact the developers, the main mailing list for the MJPEG-tools is:
mjpeg-users@lists.sourceforge.net
For more info, see our website at:
http://mjpeg.sourceforge.net/
π SEE ALSO π
mjpegtools(1), lavrec(1), glav(1)
MJPEG Tools Team said this whole thing on 6 December 2001, and honestly, periodt. go play some video, bestie πβ¨ππ¦πΈ
π¦ where this page comes from
- arch rolling: mjpegtools 2.2.1-4 Β· GPL-2.0-or-later
- debian bookworm: mjpegtools 1:2.1.0+debian-7
- debian trixie: mjpegtools 1:2.1.0+debian-8.1+b1
- fedora 43: mjpegtools-gui 2.2.1-11.fc43 Β· GPL-2.0-or-later AND GPL-2.0-only AND GPL-1.0-or-later
- fedora 44: mjpegtools-gui 2.2.1-12.fc44 Β· GPL-2.0-or-later AND GPL-2.0-only AND GPL-1.0-or-later
- nixos 26.05: mjpegtools 2.2.1
- nixpkgs unstable: mjpegtools 2.2.1
- opensuse-leap 16.0: mjpegtools 2.2.1-160000.2.2 Β· GPL-2.0-only
- opensuse-leap 16.0: mjpegtools 2.2.1-160000.2.2 Β· GPL-2.0-only
- opensuse-leap 16.0: mjpegtools 2.2.1-160000.2.2 Β· GPL-2.0-only
- opensuse-leap 16.0: mjpegtools 2.2.1-160000.2.2 Β· GPL-2.0-only
- ubuntu jammy: mjpegtools 1:2.1.0+debian-6build1
- ubuntu noble: mjpegtools 1:2.1.0+debian-8.1build1
- ubuntu questing: mjpegtools 1:2.1.0+debian-8.1build1
- ubuntu resolute: mjpegtools 1:2.2.1-3
- ubuntu stonking: mjpegtools 1:2.2.1-3
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms