Something went wrong. Try again.
🎥 Command line media player
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236## mpv configuration file#
########################## encoding profile file ############################ Note: by default, this file is installed to /etc/mpv/encoding-profiles.conf# (or a different location, depending on --prefix). mpv will load it by# default on program start. If ~/.mpv/encoding-profiles.conf exists, this file# will be loaded instead.## Then, list all profiles by# mpv --profile=help | grep enc-## The following kinds of encoding profiles exist:# enc-a-*: initialize an audio codec including good defaults# enc-v-*: initialize a video codec including good defaults# enc-f-*: initialize a file format including good defaults, including# selecting and initializing a good audio and video codec# enc-to-*: load known good settings for a target device; this typically# includes selecting an enc-f-* profile, then adjusting some# settings like frame rate, resolution and codec parameters## AFTER including a profile of these, you can of course still change# options, or even switch to another codec.## You can view the exact options a profile sets by# mpv --show-profile=enc-to-hp-slate-7## Examples:# mpv --profile=enc-to-dvdpal --o=outfile.mpg infile.mkv# mpv --profile=enc-f-avi --ofps=30 --o=outfile.avi infile.mkv# mpv --profile=enc-v-mpeg4 --ovcopts-add=qscale=7 --profile=enc-a-mp3 --oacopts-add=b=320k --o=outfile.avi infile.mkv
################# audio codecs #################[enc-a-aac]profile-desc = "AAC (libfdk-aac or FFmpeg)"oac = libfdk_aac,aacoacopts = b=96k
[enc-a-ac3]profile-desc = "AC3 (FFmpeg)"oac = ac3oacopts = b=448k
[enc-a-mp3]profile-desc = "MP3 (LAME)"oac = libmp3lameoacopts = b=128k
[enc-a-vorbis]profile-desc = "Vorbis (libvorbis or FFmpeg)"oac = libvorbis,vorbisoacopts = qscale=3
[enc-a-opus]profile-desc = "Opus (libopus or FFmpeg)"oac = libopus,opusaudio-samplerate = 48000oacopts = b=96k
################# video codecs #################[enc-v-h263]profile-desc = "H.263 (FFmpeg)"ovc = h263ovcopts = qscale=4
[enc-v-h264]profile-desc = "H.264 (x264)"ovc = libx264ovcopts = preset=medium,crf=23,threads=0# If you want to restrict the output video to something compatible with most# hardware and basic decoders, add "profile=high,level=41" to ovcopts above and# uncomment the following line to avoid errors when source video isn't yuv420p:#vf-add = format=yuv420p
[enc-v-mpeg2]profile-desc = "MPEG-2 Video (FFmpeg)"ovc = mpeg2video
[enc-v-mpeg4]profile-desc = "MPEG-4 Part 2 (FFmpeg)"ovc = mpeg4ovcopts = qscale=4
[enc-v-vp8]profile-desc = "VP8 (libvpx)"ovc = libvpxovcopts = speed=0,lag-in-frames=8,slices=2,threads=0,b=2M,crf=10,qmin=0,qmax=36
[enc-v-vp9]profile-desc = "VP9 (libvpx)"ovc = libvpx-vp9ovcopts = speed=6,lag-in-frames=8,slices=2,threads=0,crf=18,qmin=0,qmax=36
############ formats ############[enc-f-3gp]profile-desc = "H.263 + AAC (for 3GP)"of = 3gpocopyts = yesprofile = enc-v-h263profile = enc-a-aacofopts-clr = yes
[enc-f-avi]profile-desc = "MPEG-4 + MP3 (for AVI)"of = aviocopyts = nooautofps = yesprofile = enc-v-mpeg4profile = enc-a-mp3ofopts-clr = yes
[enc-f-mp4]profile-desc = "H.264 + AAC (for MP4)"of = mp4ocopyts = yesprofile = enc-v-h264profile = enc-a-aac## equivalent to using qt-faststart tool## can be used to speed up seeking when streaming# ofopts = movflags=+faststart
[enc-f-webm]profile-desc = "VP9 + Opus (for WebM)"of = webmocopyts = yesprofile = enc-v-vp9profile = enc-a-opusofopts-clr = yes
################### target devices ###################[enc-to-dvdpal]profile-desc = "DVD-Video PAL, use dvdauthor -v pal -a ac3+en (MUST be used with 4:3 or 16:9 aspect, and 720x576, 704x576, 352x576 or 352x288 resolution)"profile = enc-v-mpeg2profile = enc-a-ac3of = dvdofopts-append = packetsize=2048ofopts-append = muxrate=10080000ofps = 25oharddup = yesovfirst = yes # dvdauthor needs thisaudio-samplerate = 48000ovcopts = g=15,b=6000000,maxrate=9000000,minrate=0,bufsize=1835008
[enc-to-dvdntsc]profile-desc = "DVD-Video NTSC, use dvdauthor -v ntsc -a ac3+en (MUST be used with 4:3 or 16:9 aspect, and 720x480, 704x480, 352x480 or 352x240 resolution)"profile = enc-v-mpeg2profile = enc-a-ac3of = dvdofopts-append = packetsize=2048ofopts-append = muxrate=10080000ofps = 24000/1001oharddup = yesovfirst = yes # dvdauthor needs thisaudio-samplerate = 48000ovcopts = g=18,b=6000000,maxrate=9000000,minrate=0,bufsize=1835008
[enc-to-nok-n900]profile-desc = "MP4 for Nokia N900"profile = enc-f-mp4# DW = 800, DH = 480, SAR = 1vf-add = lavfi=graph="scale=floor(min(min(800\,dar*480)\,in_w*max(1\,sar))/2+0.5)*2:floor(min(min(800/dar\,480)\,in_h*max(1/sar\,1))/2+0.5)*2,setsar=sar=1"ovcopts-append = profile=baselineovcopts-append = level=30ovcopts-append = maxrate=10000kovcopts-append = bufsize=10000kovcopts-append = rc_init_occupancy=9000kovcopts-append = refs=5omaxfps = 30
[enc-to-nok-6300]profile-desc = "3GP for Nokia 6300"profile = enc-f-3gpofps = 25vf-add = lavfi=graph="scale=176:144"audio-samplerate = 16000audio-channels = 1oacopts-add = b=32k
[enc-to-hp-slate-7]profile-desc = "MP4 for HP Slate 7 (1024x600, crazy aspect)"profile = enc-f-mp4omaxfps = 30ovcopts-add = profile=high# DW = 1024, DH = 600, DAR = 97:54 (=> SAR = 2425:2304)vf-add = lavfi=graph="scale=floor(min(1024*min(1\,dar/(97/54))\,in_w)/2+0.5)*2:floor(min(600*min((97/54)/dar\,1)\,in_h)/2+0.5)*2,setsar=sar=sar/(2425/2304)"
# Advanced scaling for specific output devices - how it works:# DW = display width (px) (1024)# DH = display height (px) (600)# SAR = display sample aspect ratio, i.e. DAR * DH / DW (2425:2304)# DAR = display aspect ratio, i.e. SAR * DW / DH (97:54)# Variant: zoomed out# vf-add = lavfi=graph="scale=floor(min(DW*min(1\,dar/DAR)\,in_w*max(1\,sar/SAR))/2+0.5)*2:floor(min(DH*min(DAR/dar\,1)\,in_h*max(SAR/sar\,1))/2+0.5)*2,setsar=sar=1"# Variant: zoomed in# vf-add = lavfi=graph="scale=floor(min(DW*max(1\,dar/DAR)\,in_w*max(1\,sar/SAR))/2+0.5)*2:floor(min(DH*max(DAR/dar\,1)\,in_h*max(SAR/sar\,1))/2+0.5)*2,setsar=sar=1"# How it works:# 1a: DW, DH*dar/DAR - fit to display width# 1b: DH*DAR/dar, DH - fit to display height# 1: the min of 1a and 1b these (i.e. fit inside both width and height); for zoomed in view, use the max# 2a: in_w, in_h*SAR/sar - fit to original width# 2b: in_w*sar/SAR, in_h - fit to original height# 2: the max of 2a and 2b (i.e. avoid enlarging both dimensions - let HW scaling handle this)# output: the min of 1 and 2 (i.e. fulfill both constraints)# setsar=sar=1 to prevent scaling on the device (skip this if the device actually wants the proper SAR to be specified for not performing needless scaling)## Simplified special case for SAR == 1, DAR == DW/DH:# Variant: zoomed out# vf-add = lavfi=graph="scale=floor(min(min(DW\,dar*DH)\,in_w*max(1\,sar))/2+0.5)*2:floor(min(min(DW/dar\,DH)\,in_h*max(1/sar\,1))/2+0.5)*2,setsar=sar=1"# Variant: zoomed in# vf-add = lavfi=graph="scale=floor(min(max(DW\,dar*DH)\,in_w*max(1\,sar))/2+0.5)*2:floor(min(max(DW/dar\,DH)\,in_h*max(1/sar\,1))/2+0.5)*2,setsar=sar=1"# setsar=sar=1 to prevent nasty almost-1 SAR to be passed to the codec due to the rounding which can fail## If the device supports file SAR properly, we can make use of it to avoid# upscaling. The setsar=sar=sar/SAR at the end serves to fake the SAR for devices that don't know their own display's SAR.# Variant: zoomed out# vf-add = lavfi=graph="scale=floor(min(DW*min(1\,dar/DAR)\,in_w)/2+0.5)*2:floor(min(DH*min(DAR/dar\,1)\,in_h)/2+0.5)*2,setsar=sar=sar/SAR"# Variant: zoomed in# vf-add = lavfi=graph="scale=floor(min(DW*max(1\,dar/DAR)\,in_w)/2+0.5)*2:floor(min(DH*max(DAR/dar\,1)\,in_h)/2+0.5)*2,setsar=sar=sar/SAR"# Simplified special case for SAR == 1, DAR == DW/DH:# Variant: zoomed out# vf-add = lavfi=graph="scale=floor(min(min(DW\,dar*DH)\,in_w)/2+0.5)*2:floor(min(min(DW/dar\,DH)\,in_h)/2+0.5)*2"# Variant: zoomed in# vf-add = lavfi=graph="scale=floor(min(max(DW\,dar*DH)\,in_w)/2+0.5)*2:floor(min(max(DW/dar\,DH)\,in_h)/2+0.5)*2"