Convert an AVCHD / MTS file to MP4 using ffmpeg
Convert an .MTS file to a .MP4 file
We want to convert it to .MP4, for instance to show it on a mobile device Android, or to play it om xbmc, or to import into kdenlive.
For a whole directory, type:
IFS=$(echo -en "\n\b"); for i in *.MTS; do ffmpeg -i "$i" -vcodec mpeg4 -b:v 15M -acodec libmp3lame -b:a 192k "$i.mp4"; done
or offtopic:
find . -print0 | while read -d $'\0' file do echo -v "$file" done
Now, if you want to resize it for some reason (show on mobile phone):
#ffmpeg -i 00031.MTS -s 480x320 -b:v 4000k 00031.MP4
-i = input file
-s = size <=== PUT THE SIZE PARAMETER JUST AFTER THE INPUTFILENAME, OTHERWISE YOU GET AN ERROR
-b:v = videobitrate, 8000k gives a slightly better image, but doubles the filesize -b:a = audiobitrate
Using these parameters you shrink a 25MB movie to a 6 MB movie.
Convert an .DV file to a .MP4 file
ffmpeg -i tape.dv -vcodec mpeg4 -b:v 15M -acodec libmp3lame -ab 192k -threads 2 -ilme tape.mp4
-ilme = Force interlacing support in encoder (MPEG-2 and MPEG-4 only). Use this option if your input file is interlaced and you want to keep the interlaced format for minimum losses. The alternative is to deinterlace the input stream with -deinterlace, but deinterlacing introduces losses.
Convert an .MTS file to a .DV file for video editing
We want to convert it to .DV, because then our video editing program (kdenlive) will process the clips much much faster!!!
#ffmpeg -i 00005.MTS -f avi -b:v 16000k -ab 192k 00005.DV
-i = input file
-f = format, appeared neccessary
-b:v = videobitrate, this value of 16000k is exactly the same as the source file, because we don't want any loss!!
-b:a = audio bitrate, this value of 192k is exactly the same as the source file, because we don't want any loss!!
ALTERNATIVE
I also found this commandline, worked very well:
ffmpeg-kino -threads 2 -i 00120.MTS -s 720x576 -r pal -aspect 16:9 -ac 2 -ar 48000 -pix_fmt yuv420p -y 00120.MTS.dv
Another commandline:
ffmpeg -y -i 00141.MTS -vcodec mpeg4 -b:v 8000000 -ab 128000 -s 1280x720 new2.mp4 ffmpeg -y -i 00101.MTS -vcodec mpeg4 -b:v 14M -acodec ac3 -ab 192k new.mp4 <-- deze gebruikt om .MTS in kdenlive te importeren
dus:
for i in *; do ffmpeg -y -i "$i" -vcodec mpeg4 -b:v 14M -acodec ac3 -ab 192k "$i".mp4; done
Convert to WebM (VP8)
A valid WebM file can only contain VP8 video and Vorbis audio in a .webm container.
ffmpeg -i bla.mp4 -vcodec libvpx -b:v 15M -acodec libvorbis -b:a 192k out.webm
For web page (reduced size):
# ffmpeg -i 44.mp4 -s 568x320 -vcodec libvpx -b:v 300k -acodec libvorbis -b:a 64k 44.webm
Convert an .MTS file to Flash (FLV)
ffmpeg -i bla.mts -s 640x360 -ar 22050 -b:v 1M blaat.flv
of pas de bitrate aan voor hogere kwaliteit:
ffmpeg -i bla.mts -s 640x360 -ar 22050 -b:v 3M blaat.flv
Convert an old analogue letterbox recording to SD digital format
The input file was
Input #0, mpeg, from '1106_20091226203000.mpg': Duration: 04:24:55.20, start: 0.276144, bitrate: 6934 kb/s Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x576 [PAR 64:45 DAR 16:9], 8000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc Stream #0.1[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16, 384 kb/s
and the picture has big black borders on the top and bottom and looks squashed. It was supposed to be stretched to fill up the screen (Our old analogue TV did that automatically).
This must be done in 2 steps: first the cropping, then rescaling back to 16:9
The first command is
ffmpeg -i input.mpg -vf crop=720:430 -vcodec mpeg2video -b:v 8M -acodec mp2 -b:a 384k 25ycrop.mpg
Note that we try to keep the audio/video exactly the same as the sourcefile. The commandline options -sameq and -vcodec copy don't seem to work here.
Next we must scale the video back to full screen, again the same settings for vcodec and acodec:
ffmpeg -i 25ycrop.mpg -s 720x576 -aspect 16:9 -vcodec mpeg2video -b:v 8M -acodec mp2 -b:a 384k bla.mpg
Other examples
# ffmpeg -i 00039.MTS -f avi -vcodec mpeg4 -b:v 16000 bla.wmv # ffmpeg -i 00039.MTS -f avi -vcodec msmpeg4v2 -b:v 16000 bla.wmv # ffmpeg -y -i VIDEO0005.3gp -vcodec wmv2 -f avi -ar 44100 kerst2009.avi # ffmpeg -formats -> lists formats # ffmpeg -f avi -> force avi format # ffmpeg -codecs -> lists codecs # ffmpeg -vcodec mpeg4 -> use codec # ffmpeg -acodec libmp3lame -> use mp3 audio codec # ffmpeg -i <inputfile> -> show info about movie file # ffmpeg -y -> overwrite outputfiles # ffmpeg -vcodec copy -ss 00:01:00 -t 00:03:00 -i infile.mpg outfile.mpg -> this cut the file from 1 minute to 4 minutes (t=duration) or # ffmpeg -i inputfilename.mpg -sameq -ss 00:01:00 -t 00:03:00 outfile.mpg The above will extract 3 minutes of mpg file from the 1 minute mark using same quality as the source file. This is useful for Variable Bit Rate (VBR) encoded files. # ffmpeg -target dvd|vcd|svcd|dv|dv50 -> all options are set automagically, but you can overrule as long as they don't conflict w/ the standard -r --> set framerate, default = 25. also 'pal' is accepted -threads --> set thread count # ffmpeg -i 00090.MTS -f avi -b 6000k -ab 192k -vcodec mpeg2video 00090.mpg convert MTS to XBOX readable format
example command to preserve EXIF data and timestamps
$ for i in *.MOV ; do ffmpeg -i "$i" -preset slow -crf 27 "${i//.MOV}.mp4" ; exiftool -tagsFromFile "$i" "${i//.MOV}.mp4" ; touch -r "$i" "${i//.MOV}.mp4" ; done
!!I should have used ${i%.MOV}.mp4 to match only the suffix pattern, not anywhere in the variable string.
example of Intel Skylake 520 vaapi encoding
# ffmpeg -threads 4 -i dcc-basf.mp4 -vaapi_device /dev/dri/renderD128 -vcodec h264_vaapi -vf format='nv12|vaapi,hwupload' output2.mp4
Burning subtitles from embedded subtitles stream into the video image
# ffmpeg -i s01e01.mkv -c:v libx264 -c:a copy -vf "subtitles=s01e01.mkv:stream_index=1" output.mkv
where
stream_index is the # of the subtitle stream
This gives encoding fps of around 30.
ultrafast encoding:
# ffmpeg -i s01e01.mkv -c:v libx264 -preset ultrafast -c:a copy -vf "subtitles=s01e01.mkv:stream_index=1" output.mkv
This gives encoding fps of around 140.
Note:
The "ultrafast" preset will likely result in noticeable quality degradation compared to slower presets. If higher quality is important, consider using faster presets like "superfast" or "veryfast" which offer a better balance between speed and quality.
For even faster encoding, you can explore hardware acceleration options like NVENC (for NVIDIA GPUs) or QuickSync (for Intel GPUs) if your system supports them.
Intel hardware encoding:
# ffmpeg -i s01e01.mkv -c:v h264_qsv -c:a copy -vf "subtitles=s01e01.mkv:stream_index=1" output2.mkv
This gives encoding fps of around 180
Another option: -preset veryfast
Sharpening
Using the -vf option.
# Strong luma sharpen effect parameters unsharp=7:7:2.5 PvdM: dit betekent [unsharp @ 0x64f7c0] effect:sharpen type:luma msize_x:7 msize_y:7 amount:2.50 # Strong blur of both luma and chroma parameters unsharp=7:7:-2:7:7:-2 # Use the default values with ffmpeg ./ffmpeg -i in.avi -vf "unsharp" out.mp4 PvdM: dit betekent [unsharp @ 0x64f7a0] effect:sharpen type:luma msize_x:5 msize_y:5 amount:1.00
Example:
ffmpeg -i part1.dv -vf "unsharp" -target dvd test2.mpg
PvdM: getest en werkt goed:
#ffmpeg -i out.dv -vf unsharp=9:9:1.5:9:9:1.5 out2.dv
Image Stabilizing
$ ffmpeg -i $invoer -vf vidstabdetect -f null - $ ffmpeg -i $invoer -vf vidstabtransform=crop=black:smoothing=20,unsharp=5:5:0.8:3:3:0.4 $invoer.stabilized.mp4
This is a 2 trap proccess
Timestamps
To set the timestamp of the file to the video's internal creation date/time, you can use:
exiftool '-CreateDate>FileModifyDate' FILE
To force a date/time when converting:
ffmpeg -i 00041.MTS -vcodec mpeg4 -acodec copy -timestamp 2000012312:21:34 bla.mp4
Split video files
ffmpeg -i input.mpg -ss 00:00:10 -t 00:00:30 out1.mpg
-ss is the start point in hh:mm:ss from the beginning of your video file
-t is the length of time in hh:mm:ss of your new segment.
-to is the end time hh:mm:ss of the new segment.
So, in the above example, you're starting 10 seconds in from the beginning of the original file and ending 30 seconds later.
If you want to create multiple parts in one pass then the following should work:
ffmpeg -i input.mpg -ss 00:00:10 -t 00:00:30 out1.mpg -ss 00:00:35 -t 00:00:30 out2.mpg
In this example, the first segment is the same as the first example, but you're also creating a second file starting at 35 seconds in and being 30 seconds long.
Remember to use the correct encoding:
ffmpeg -i input.mpg -ss 00:00:10 -vcodec copy -acodec copy output.mpg
Cut an avi file from second 1 to 12.9.
mencoder -ss 00:01 -endpos 00:12.900 -ovc copy -oac copy -o out.avi in.avi
Merge video files
To merge 2 or more files, use the 'cat' command and pipe it through ffmpeg, like this:
cat 1.mpg 2.mpg | ffmpeg (-f mpeg) -i – -vcodec copy -acodec copy outfile.mpg
Unfortunately, this does not work. Again, mencoder to the rescue:
mencoder -oac copy -ovc copy -o output.mp4 1.mp4 2.mp4
Flip video files
hflip and vflip
ffmpeg -i input.mp4 -vf hflip,vflip,format=yuv420p -codec:v libx264 -preset medium -crf 23 -codec:a copy output.mkv
The above did not work, but this did:
ffmpeg -i VID_20130915_110755.mp4 -vf transpose=2,transpose=2 output.mp4
rotate video files 90 degrees counterclockwise
ffmpeg -i 20160416_152451.mp4 -vf transpose=2 -c:a copy output.mp4
create timelapse movie
To create a timelapse movie from images in a directory, use:
mencoder "mf://*.jpg" -mf fps=5 -o test.avi -ovc lavc -lavcopts vcodec=msmpeg4v2:vbitrate=1000
I know, this is mencoder, but it works.
FFmpeg uses the following format:
ffmpeg -f image2 -r 10 -b:v 1M -i %03d.jpg test2.mp4
but this doesn't work. Also it requires the imagefilenames to be of name 001.jpg - 999.jpg, which is not always the case.
Rename files sequentially
cnt=1;for i in `ls *.jpg`; do mv ${i} ${cnt}.jpg;cnt=$((cnt+1)); done
To list available formats (supported pixel formats, video formats, and frame sizes) for a particular input device:
$ ffmpeg -f v4l2 -list_formats all -i /dev/video0
Alternatively you could use
v4l2-ctl --list-formats-ext
to list available formats.
To take a picture with a webcam
ffmpeg -f video4linux2 -i /dev/video0 -vframes 1 test.jpeg
To record video with a webcam
ffmpeg -f video4linux2 -s 640x480 -r 20 -i /dev/video0 -f m4v out.m4v
-r = framerate
to stream live to youtube from IPCAM
ffmpeg -rtsp_transport tcp -i "rtsp://192.168.1.34:554/iphone/11?username:password" -f lavfi -i anullsrc=r=16000:cl=mono -c:a aac -ar 44100 -pix_fmt yuv420p -preset medium -s 1280x720 -bufsize 6000k -vb 6000k -maxrate 6000k -deinterlace -vcodec libx264 -crf 18 -r 50 -f flv -force_key_frames source -x264-params keyint=20:scenecut=0 "rtmp://a.rtmp.youtube.com/live2/<YT id>
record the screen, capture the desktop
Use the x11grab device:
ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 output.mp4
This will grab the image from desktop, starting with the upper-left corner at (x=100, y=200) with the width and height of 1024x768.
If you need audio too you can use ALSA (see Capture/ALSA for more info):
ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 -f alsa -ac 2 -i hw:0 output.mkv
Or the pulse input device:
ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 -f pulse -ac 2 -i default output.mkv
Record fullscreen TV image (ziggo stream):
ffmpeg -video_size 1600x900 -framerate 30 -f x11grab -i :0.0 -c:v libx264 -qp 0 -preset ultrafast -f pulse -ac 2 -i default capture.mkv
deze werkt:
ffmpeg -video_size 1920x1080 -framerate 15 -f x11grab -i :0.0 -f pulse -ac 2 -i default -c:v libx264 -qp 0 -preset ultrafast capture.mkv
Merging video and audio, with audio re-encoding
See this example, taken from this blog entry but updated for newer syntax. It should be something to the effect of:
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output.mp4
Here, we assume that the video file does not contain any audio stream yet, and that you want to have the same output format (here, MP4) as the input format.
The above command transcodes the audio, since MP4s cannot carry PCM audio streams. You can use any other desired audio codec if you want. See the AAC Encoding Guide for more info.
If your audio or video stream is longer, you can add the -shortest option so that ffmpeg will stop encoding once one file ends.
Copying the audio without re-encoding
If your output container can handle (almost) any codec – like MKV – then you can simply copy both audio and video streams:
ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv
Replacing audio stream
If your input video already contains audio, and you want to replace it, you need to tell ffmpeg which audio stream to take:
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental -map 0:v:0 -map 1:a:0 output.mp4
The map option makes ffmpeg only use the first video stream from the first input and the first audio stream from the second input for the output file.
extract images from a video
ffmpeg -i giveafuck.mp4 image-%3d.jpeg
-r This is used to set the frame rate of video. i.e. no. of frames to be extracted into images per second. The default value is 25, using which, would have yielded a large number of images.
Create a thumbnail image every X seconds of the video
Output a single frame from the video into an image file:
ffmpeg -i input.flv -ss 00:00:14.435 -vframes 1 out.png
This example will seek to the position of 0h:0m:14sec:435msec and output one frame (-vframes 1) from that position into a PNG file.
Output one image every second, named out1.png, out2.png, out3.png, etc.:
ffmpeg -i input.flv -vf fps=1 out%d.png
Output one image every minute, named img001.jpg, img002.jpg, img003.jpg, etc. The %03d dictates that the ordinal number of each output image will be formatted using 3 digits:
ffmpeg -i myvideo.avi -vf fps=1/60 img%03d.jpg
Output one image every ten minutes:
ffmpeg -i test.flv -vf fps=1/600 thumb%04d.bmp
Merge pictures into an Animated GIF
convert -delay <ticks>x<ticks-per-second> -loop 0 out*gif <output-gif-file>
In the command, "-delay" is an option that controls the animation speed. This option indicates that [ticks/ticks-per-second] seconds must elapse before the display of the next frame. The "-loop 0" option indicates infinite loops of animation. If you want, you can specify "-loop N", in which case the animation will repeat itself N times.
For example, to create an animated GIF image with 20 frames-per-second and infinite loop, use the following command.
$ convert -delay 1x20 -loop 0 out*.gif animation.gif
The last (optional) step is to reduce the size of the created GIF file, by using ImageMagick's GIF optimizer.
Use the following command to reduce the GIF size.
$ convert -layers Optimize animation.gif animation_small.gif
DVD
Rip entire DVD
# cat *.VOB | ffmpeg -i - -acodec aac -aq 100 -ac 2 -vcodec libx264 -crf 24 -threads 0 /data/pil.mp4
Re-encode for DVD use
# mythreplex --demux --fix_sync -o /data/stream -v 224 -c 128 "/data/newfile2.mpg # tcrequant /data/stream.mv2 /data/video.small.m2v 1.17052143685
Pull Chapters from VOB
You can pull chapters from VOB files using mplayer. Here's a command line to pull chapter 3 from the DVD drive and dump it to a VOB.
mplayer dvd:// -chapter 3-3 -dumpstream -dumpfile 3.vob
- physical DVD
mplayer dvd://2 -chapter 3-3 -dumpstream -dumpfile ~/3.VOB
- DVD .iso image
mplayer dvd://2 -dvd-device "$dvd_iso" -chapter 3-3 -dumpstream -dumpfile ~/3.VOB
Rip VOB to mpeg4
and deinterlace as well.
ffmpeg -i VTS_01_1.VOB -vcodec mpeg4 -b:v 10M -acodec copy -deinterlace lan1deinterlaced.mp4
Rip VOB to DV
The following command will rip a VOB file strait from an unencrypted DVD and convert it to a strait DV file.
ffmpeg -i /cdrom/VIDEO_TS/VTS_01_1.VOB -target dv /home/joel/Videos/game_vi.dv
Rip VOB to DVD
The following command will rip a VOB file to an MPEG2 video with AC3 audio for a DVD. It also uses the '-sameq' option which uses the same quality factor in the encoder as in the decoder, allowing almost lossless encoding.
ffmpeg -i myfile.vob -target dvd -sameq myfile.mpg
Rip VOB to VCD
The following command will rip a VOB file to a MPEG1 video with MP1 audio.
ffmpeg -i myfile.vob -target vcd myfile.mpg
Rip VOB to Flash (FLV)
The following command will rip a VOB file to 352×240 (the same size as VCD) and will save it as a flash file.
ffmpeg -i myfile.vob -s 352x240 myfile.flv
Rip VOB to FLAC audio
The following command will extract an AUDIO-DVD files to flac. List the VOB files in order:
cat VTS_01_1.VOB VTS_01_2.VOB | ffmpeg -i - -acodec flac -vn output.flac
unfortunately, there will be no CUE file.
Audio
Adjust volume of audio file
ffmpeg -i input.wav -af "volume=5dB" output.mp3
gives a 5 dB gain
combine multiple sources to one destination
# ffmpeg -f concat -i /tmp/list.txt output3.flac
where list.txt contains:
file '/tmp/file1' file '/tmp/file2'
or try:
ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg
better still:
ffmpeg -f concat -i <( for f in *.wav; do echo "file '$(pwd)/$f'"; done ) output.wav
Convert .dsf files (SACD) to standard .wav files (PCM - CD quality)
ffmpeg -i 04.dsf -acodec pcm_s16le -ar 44100 -ac 2 output.wav
This however, does not give enough audio quality.
The Golden Line:
ffmpeg -i input.dsf -acodec pcm_s24le -ar 44100 -ac 2 44100_24.wav
I have tried it with 32 bits and with 88200 and higher, could not hear it.
copy/convert from multistream sources
Given the following input file:
# fmpeg -i input.mkv ffmpeg version ... Copyright (c) 2000-2012 the FFmpeg developers ... Input #0, matroska,webm, from 'input.mkv': Duration: 01:39:44.02, start: 0.000000, bitrate: 5793 kb/s Stream #0:0(eng): Video: h264 (High), yuv420p, 1920x800, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default) Stream #0:1(ger): Audio: dts (DTS), 48000 Hz, 5.1(side), s16, 1536 kb/s (default) Stream #0:2(eng): Audio: dts (DTS), 48000 Hz, 5.1(side), s16, 1536 kb/s Stream #0:3(ger): Subtitle: text (default)
If we want to extract only audio streams, from input file, then we can do it like this:
ffmpeg -i input.mkv -map 0:1 -map 0:2 -c copy output.mkv
or use the appropriate codecs
Create multichannel WAVs or FLACs
This command will 'rip' the first 5 minutes (which is the first song actually) of a quadraphonic (4.0) .WAV file that is 45 minutes long:
ffmpeg -i The\ Doobie\ Bothers-\ Toulouse\ Street.wav -acodec pcm_s16le -b:a 1400k -ss 0:0:0 -t 0:5:0 \ -ac 4 -map_channel 0.0.0 -map_channel 0.0.1 -map_channel 0.0.4 -map_channel 0.0.5 output.wav -y
The resulting file 'output.wav' will be a multichannel wav with the following channel order:
1. front left
2. front right
3. rear left
4. rear right
When loaded into audacity, and then when exported into either .WAV or .FLAC move the channel slider to 6 channels and the following channel mix must be done:
output 1 -> channel: 1
output 2 -> channel: 2
output 3 -> channel: 5
output 4 -> channel: 6
Extract channels from multitrack sources
To extract the center channel (channel 3, counting the channels starts at 0) which is usually the solo voice and/or other interesting discrete stuff:
# ffmpeg -i yes.flac -ac 1 -map_channel 0.0.2 center.flac
Channel identification
I found this:
The track order of all 5.1 surround files follows the standard as defined by SMPT/EBU and implemented by SourceForge in FLAC (v. 1.2.1b): L – R – C – Lfe – Ls - Rs flac.sourceforge.net
Also:
In accordance with ANSI/CEA-863-A<ref>Consumer Electronics Association standards: Setup and Connection</ref>
Zero-based order within multi-channel mp3/wav/flac datastream |
Order within DTS/AAC |
Channel name | Color-coding on commercial receiver and cabling |
---|---|---|---|
0 | 1 | Front left | White |
1 | 2 | Front right | Red |
2 | 0 | Center | Green |
3 | 5 | Low frequency | Purple |
4 | 3 | Surround left | Blue |
5 | 4 | Surround right | Grey |
6 | 6 | Surround back left | Brown |
7 | 7 | Surround back right | Khaki |
Front left | Center | Front right |
Surround left | Surround right | |
Surround back left | Surround back right | |
Low frequency |
Standard speaker channels
This table shows the various speaker configurations that are commonly used for end-user equipment. The order and identifiers are those specified for the channel mask in the standard uncompressed WAV file format (which contains a raw multichannel PCM stream) and are used according to the same specification for most PC connectible digital sound hardware and PC operating systems capable of handling multiple channels. While it is certainly possible to build any speaker configuration, there isn't a lot of commercially available movie or music content for alternative speaker configurations. Such cases, however, can be worked around by remixing the source content channels to the speaker channels using a matrix table specifying how much of each content channel is played through each speaker channel.
Standard speaker channels
This table shows the various speaker configurations that are commonly used for end-user equipment. The order and identifiers are those specified for the channel mask in the standard uncompressed WAV file format (which contains a raw multichannel PCM stream) and are used according to the same specification for most PC connectible digital sound hardware and PC operating systems capable of handling multiple channels.<ref>The configuration of channels within the data format of an audio stream</ref><ref>Header file for OpenSL, containing various identifier definitions</ref> While it is certainly possible to build any speaker configuration, there isn't a lot of commercially available movie or music content for alternative speaker configurations. Such cases, however, can be worked around by remixing the source content channels to the speaker channels using a matrix table specifying how much of each content channel is played through each speaker channel.
Downmix of multichannel 5.1 audio to real quad 4 channel four speaker
A lot of surround music today is supplied in a 5.1 channel format. That means front left, front right, center, subwoofer, rear left, and rear right channel. But if you have a quadraphonic setup like me, you only have 4 speakers, which are real speakers, so no subwoofer is present nor needed. And the center speaker is also absent. So you have left front, right front, left rear and right rear.
But then you have a problem with the voices in the surround mix, which are usually mixed on the center channel. Sometimes the vocals are ONLY mixed into the center channel. Without a center channel setup, you will hear no vocals. Sometimes vocals are duplicated in the front left and right channel in the audio mix, but then the vocals will sound thin, if present at all. So what is needed is a downmix of the center channel to the two front channels. Or in other words:
quad destination: 5.1 source: left front <- left front + center channel right front <- right front + center channel left rear <- left rear right rear <- right rear
This can be achieved by the following ffmpeg command: (where $i is the surround file)
ffmpeg -i "$i" -af "pan=quad|c0<c0+c2|c1<c1+c2|c2=c4|c3=c5" "$i.flac"
Or, for a complete directory:
IFS=$(echo -en "\n\b"); for i in *.wav; do ffmpeg -i "$i" -af "pan=quad|c0<c0+c2|c1<c1+c2|c2=c4|c3=c5" "$i.flac"; done
Compand
ffmpeg -i input.wav -filter:a "dynaudnorm" output.wav
You will most likely need to tweak the filter options for your particular use case. Use the examples given for the compand filter as a starting point:
Make music with both quiet and loud passages suitable for listening to in a noisy environment:
compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
Another example for audio with whisper and explosion parts:
compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
Here, the second example's options are, specifically:
attacks=0|0 decays=1|1 points=-90/-900|-70/-70|-30/-9|0/-3 soft-knee=6 gain=0 volume=0 delay=0
You may adjust the gain to keep the same dynamic processing but adjust it to your baseline input level.
More examples: Make music with both quiet and loud passages suitable for listening to in a noisy environment: compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2 Another example for audio with whisper and explosion parts:
compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0 A noise gate for when the noise is at a lower level than the signal:
compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
Here is another noise gate, this time for when the noise is at a higher level than the signal (making it, in some ways, similar to squelch):
compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
2:1 compression starting at -6dB:
compand=points=-80/-80|-6/-6|0/-3.8|20/3.5
2:1 compression starting at -9dB:
compand=points=-80/-80|-9/-9|0/-5.3|20/2.9
2:1 compression starting at -12dB:
compand=points=-80/-80|-12/-12|0/-6.8|20/1.9
2:1 compression starting at -18dB:
compand=points=-80/-80|-18/-18|0/-9.8|20/0.7
3:1 compression starting at -15dB:
compand=points=-80/-80|-15/-15|0/-10.8|20/-5.2
Compressor/Gate:
compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6
Expander:
compand=attacks=0:points=-80/-169|-54/-80|-49.5/-64.6|-41.1/-41.1|-25.8/-15|-10.8/-4.5|0/0|20/8.3
Hard limiter at -6dB:
compand=attacks=0:points=-80/-80|-6/-6|20/-6
Hard limiter at -12dB:
compand=attacks=0:points=-80/-80|-12/-12|20/-12
Hard noise gate at -35 dB:
compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20
Soft limiter:
compand=attacks=0:points=-80/-80|-12.4/-12.4|-6/-8|0/-6.8|20/-2.8
HTC Hero
For the HTC Hero (Android) the default movie properties are:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '26112009004.mp4': Duration: 00:00:39.06, start: 0.000000, bitrate: 424 kb/s Stream #0.0(und): Video: mpeg4, yuv420p, 320x240 [PAR 1:1 DAR 4:3], 372 kb/s, 15 tbr, 30k tbn, 30k tbc Stream #0.1(und): Audio: aac, 48000 Hz, mono, s16, 48 kb/s Metadata major_brand : mp42 minor_version : 0 compatible_brands: mp423gp4isom
HTC Desire
Screen size: 800x480 For the Desire, the default movie properties are:
- Convert .MTS files for Desire:
for i in * ; do ffmpeg -i $i -s 800x480 -b 8000k /media/disk/DCIM/oostenrijk\ videos/$i.MP4; done
Samsung Galaxy S Plus
Screen size: 800x480
Encode videos for Samsung Galaxy S Plus
ffmpeg -i "27.mp4" -s 800x480 -vcodec mpeg4 -b 768k -acodec libmp3lame -ab 128k -dmix_mode loro "27.mobile.mp4"
where
- 512k gives rather bad image
- 1M gives perfect image
- 768k hits the sweetspot
- -dmix_mode loro is used for downmixing surround sound
Codecs
most used video codecs that ffmpeg can encode
WARNING!!! DEPRECATED !!!!!!!
Codecs: D..... = Decoding supported .E.... = Encoding supported ..V... = Video codec ..A... = Audio codec ..S... = Subtitle codec ...S.. = Supports draw_horiz_band ....D. = Supports direct rendering method 1 .....T = Supports weird frame truncation ------ dvvideo DV (Digital Video) flashsv Flash Screen Video flc Flash Video (FLV) / Sorenson Spark / Sorenson H.263 libtheora libtheora Theora libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 libxvid libxvidcore MPEG-4 part 2 mjpeg MJPEG (Motion JPEG) mpeg1video MPEG-1 video mpeg2video MPEG-2 video mpeg4 MPEG-4 part 2 msmpeg4 MPEG-4 part 2 Microsoft variant version 3 msmpeg4v1 MPEG-4 part 2 Microsoft variant version 1 msmpeg4v2 MPEG-4 part 2 Microsoft variant version 2 wmv1 Windows Media Video 7 wmv2 Windows Media Video 8
all video codecs that ffmpeg can encode
Codecs: D..... = Decoding supported .E.... = Encoding supported ..V... = Video codec ..A... = Audio codec ..S... = Subtitle codec ...I.. = Intra frame-only codec ....L. = Lossy compression .....S = Lossless compression ------- D.VI.. 012v Uncompressed 4:2:2 10-bit D.V.L. 4xm 4X Movie D.VI.S 8bps QuickTime 8BPS video .EVIL. a64_multi Multicolor charset for Commodore 64 (encoders: a64multi ) .EVIL. a64_multi5 Multicolor charset for Commodore 64, extended with 5th color (colram) (encoders: a64multi5 ) D.V..S aasc Autodesk RLE D.VIL. aic Apple Intermediate Codec DEVIL. amv AMV Video D.V.L. anm Deluxe Paint Animation D.V.L. ansi ASCII/ANSI art DEVIL. asv1 ASUS V1 DEVIL. asv2 ASUS V2 D.VIL. aura Auravision AURA D.VIL. aura2 Auravision Aura 2 D.V... avrn Avid AVI Codec DEVI.. avrp Avid 1:1 10-bit RGB Packer D.V.L. avs AVS (Audio Video Standard) video DEVI.. avui Avid Meridien Uncompressed DEVI.. ayuv Uncompressed packed MS 4:4:4:4 D.V.L. bethsoftvid Bethesda VID video D.V.L. bfi Brute Force & Ignorance D.V.L. binkvideo Bink video D.VI.. bintext Binary text DEVI.S bmp BMP (Windows and OS/2 bitmap) D.V..S bmv_video Discworld II BMV video D.VI.S brender_pix BRender PIX image D.V.L. c93 Interplay C93 D.V.L. cavs Chinese AVS (Audio Video Standard) (AVS1-P2, JiZhun profile) D.V.L. cdgraphics CD Graphics video D.VIL. cdxl Commodore CDXL video D.V.L. cinepak Cinepak DEVIL. cljr Cirrus Logic AccuPak D.VI.S cllc Canopus Lossless Codec D.V.L. cmv Electronic Arts CMV video (decoders: eacmv ) D.V... cpia CPiA video format D.V..S cscd CamStudio (decoders: camstudio ) D.VIL. cyuv Creative YUV (CYUV) D.V.L. dfa Chronomaster DFA DEV.LS dirac Dirac (decoders: dirac libschroedinger ) (encoders: libschroedinger ) DEVIL. dnxhd VC3/DNxHD DEVI.S dpx DPX image D.V.L. dsicinvideo Delphine Software International CIN video DEVIL. dvvideo DV (Digital Video) D.V..S dxa Feeble Files/ScummVM DXA D.VI.S dxtory Dxtory D.V.L. escape124 Escape 124 D.V.L. escape130 Escape 130 D.VILS exr OpenEXR image DEV..S ffv1 FFmpeg video codec #1 DEVI.S ffvhuff Huffyuv FFmpeg variant DEV..S flashsv Flash Screen Video v1 DEV.L. flashsv2 Flash Screen Video v2 D.V..S flic Autodesk Animator Flic video DEV.L. flv1 FLV / Sorenson Spark / Sorenson H.263 (Flash Video) (decoders: flv ) (encoders: flv ) D.V..S fraps Fraps D.VI.S frwu Forward Uncompressed D.V.L. g2m Go2Meeting DEV..S gif GIF (Graphics Interchange Format) DEV.L. h261 H.261 DEV.L. h263 H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2 D.V.L. h263i Intel H.263 DEV.L. h263p H.263+ / H.263-1998 / H.263 version 2 DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vdpau ) (encoders: libx264 libx264rgb ) DEVI.S huffyuv HuffYUV D.V.L. idcin id Quake II CIN video (decoders: idcinvideo ) D.VI.. idf iCEDraw text D.V.L. iff_byterun1 IFF ByteRun1 (decoders: iff ) D.V.L. iff_ilbm IFF ILBM (decoders: iff ) D.V.L. indeo2 Intel Indeo 2 D.V.L. indeo3 Intel Indeo 3 D.V.L. indeo4 Intel Indeo Video Interactive 4 D.V.L. indeo5 Intel Indeo Video Interactive 5 D.V.L. interplayvideo Interplay MVE video DEVILS jpeg2000 JPEG 2000 DEVILS jpegls JPEG-LS D.VIL. jv Bitmap Brothers JV video D.V.L. kgv1 Kega Game Video D.V.L. kmvc Karl Morton's video codec D.VI.S lagarith Lagarith lossless .EVI.S ljpeg Lossless JPEG D.VI.S loco LOCO D.V.L. mad Electronic Arts Madcow Video (decoders: eamad ) D.VIL. mdec Sony PlayStation MDEC (Motion DECoder) D.V.L. mimic Mimic DEVIL. mjpeg Motion JPEG D.VIL. mjpegb Apple MJPEG-B D.V.L. mmvideo American Laser Games MM Video D.V.L. motionpixels Motion Pixels video DEV.L. mpeg1video MPEG-1 video (decoders: mpeg1video mpeg1video_vdpau ) DEV.L. mpeg2video MPEG-2 video (decoders: mpeg2video mpegvideo mpegvideo_vdpau ) DEV.L. mpeg4 MPEG-4 part 2 (decoders: mpeg4 mpeg4_vdpau ) (encoders: mpeg4 libxvid ) D.V.L. mpegvideo_xvmc MPEG-1/2 video XvMC (X-Video Motion Compensation) D.V.L. msa1 MS ATC Screen D.V.L. msmpeg4v1 MPEG-4 part 2 Microsoft variant version 1 DEV.L. msmpeg4v2 MPEG-4 part 2 Microsoft variant version 2 DEV.L. msmpeg4v3 MPEG-4 part 2 Microsoft variant version 3 (decoders: msmpeg4 ) (encoders: msmpeg4 ) D.V..S msrle Microsoft RLE D.V.L. mss1 MS Screen 1 D.VIL. mss2 MS Windows Media Video V9 Screen DEV.L. msvideo1 Microsoft Video 1 D.VI.S mszh LCL (LossLess Codec Library) MSZH D.V.L. mts2 MS Expression Encoder Screen D.VIL. mvc1 Silicon Graphics Motion Video Compressor 1 D.VIL. mvc2 Silicon Graphics Motion Video Compressor 2 D.V.L. mxpeg Mobotix MxPEG video D.V.L. nuv NuppelVideo/RTJPEG D.V.L. paf_video Amazing Studio Packed Animation File Video DEVI.S pam PAM (Portable AnyMap) image DEVI.S pbm PBM (Portable BitMap) image DEVI.S pcx PC Paintbrush PCX image DEVI.S pgm PGM (Portable GrayMap) image DEVI.S pgmyuv PGMYUV (Portable GrayMap YUV) image D.VIL. pictor Pictor/PC Paint DEV..S png PNG (Portable Network Graphics) image DEVI.S ppm PPM (Portable PixelMap) image DEVIL. prores Apple ProRes (iCodec Pro) (decoders: prores prores_lgpl ) (encoders: prores prores_aw prores_ks ) D.VIL. ptx V.Flash PTX image D.VI.S qdraw Apple QuickDraw D.V.L. qpeg Q-team QPEG DEV..S qtrle QuickTime Animation (RLE) video DEVI.S r10k AJA Kona 10-bit RGB Codec DEVI.S r210 Uncompressed RGB 10-bit DEVI.S rawvideo raw video D.VIL. rl2 RL2 video DEV.L. roq id RoQ video (decoders: roqvideo ) (encoders: roqvideo ) D.V.L. rpza QuickTime video (RPZA) DEV.L. rv10 RealVideo 1.0 DEV.L. rv20 RealVideo 2.0 D.V.L. rv30 RealVideo 3.0 D.V.L. rv40 RealVideo 4.0 D.V.L. sanm LucasArts SMUSH video DEVI.S sgi SGI image D.VI.S sgirle SGI RLE 8-bit D.V.L. smackvideo Smacker video (decoders: smackvid ) D.V.L. smc QuickTime Graphics (SMC) D.V... smv Sigmatel Motion Video (decoders: smvjpeg ) DEV.LS snow Snow D.VIL. sp5x Sunplus JPEG (SP5X) DEVI.S sunrast Sun Rasterfile image DEV.L. svq1 Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1 D.V.L. svq3 Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3 DEVI.S targa Truevision Targa image D.VI.. targa_y216 Pinnacle TARGA CineWave YUV16 D.V.L. tgq Electronic Arts TGQ video (decoders: eatgq ) D.V.L. tgv Electronic Arts TGV video (decoders: eatgv ) DEV.L. theora Theora (encoders: libtheora ) D.VIL. thp Nintendo Gamecube THP video D.V.L. tiertexseqvideo Tiertex Limited SEQ video DEVI.S tiff TIFF image D.VIL. tmv 8088flex TMV D.V.L. tqi Electronic Arts TQI video (decoders: eatqi ) D.V.L. truemotion1 Duck TrueMotion 1.0 D.V.L. truemotion2 Duck TrueMotion 2.0 D.V..S tscc TechSmith Screen Capture Codec (decoders: camtasia ) D.V.L. tscc2 TechSmith Screen Codec 2 D.VIL. txd Renderware TXD (TeXture Dictionary) image D.V.L. ulti IBM UltiMotion (decoders: ultimotion ) DEVI.S utvideo Ut Video DEVI.S v210 Uncompressed 4:2:2 10-bit D.VI.S v210x DEVI.. v308 Uncompressed packed 4:4:4 DEVI.. v408 Uncompressed packed QT 4:4:4:4 DEVI.S v410 Uncompressed 4:4:4 10-bit D.V.L. vb Beam Software VB D.VI.S vble VBLE Lossless Codec D.V.L. vc1 SMPTE VC-1 (decoders: vc1 vc1_vdpau ) D.V.L. vc1image Windows Media Video 9 Image v2 D.VIL. vcr1 ATI VCR1 D.VIL. vixl Miro VideoXL (decoders: xl ) D.V.L. vmdvideo Sierra VMD video D.V..S vmnc VMware Screen Codec / VMware Video D.V.L. vp3 On2 VP3 D.V.L. vp5 On2 VP5 D.V.L. vp6 On2 VP6 D.V.L. vp6a On2 VP6 (Flash version, with alpha channel) D.V.L. vp6f On2 VP6 (Flash version) DEV.L. vp8 On2 VP8 (decoders: vp8 libvpx ) (encoders: libvpx ) ..V.L. vp9 Google VP9 D.V.L. webp WebP DEV.L. wmv1 Windows Media Video 7 DEV.L. wmv2 Windows Media Video 8 D.V.L. wmv3 Windows Media Video 9 (decoders: wmv3 wmv3_vdpau ) D.V.L. wmv3image Windows Media Video 9 Image D.VIL. wnv1 Winnov WNV1 D.V.L. ws_vqa Westwood Studios VQA (Vector Quantized Animation) video (decoders: vqavideo ) D.V.L. xan_wc3 Wing Commander III / Xan D.V.L. xan_wc4 Wing Commander IV / Xxan D.VI.. xbin eXtended BINary text DEVI.S xbm XBM (X BitMap) image DEVIL. xface X-face image DEVI.S xwd XWD (X Window Dump) image DEVI.. y41p Uncompressed YUV 4:1:1 12-bit D.V.L. yop Psygnosis YOP Video DEVI.. yuv4 Uncompressed packed 4:2:0 D.V..S zerocodec ZeroCodec Lossless Video DEVI.S zlib LCL (LossLess Codec Library) ZLIB DEV..S zmbv Zip Motion Blocks Video D.A.L. 8svx_exp 8SVX exponential D.A.L. 8svx_fib 8SVX fibonacci DEA.L. aac AAC (Advanced Audio Coding) (encoders: aac libvo_aacenc ) D.A.L. aac_latm AAC LATM (Advanced Audio Coding LATM syntax) DEA.L. ac3 ATSC A/52A (AC-3) (encoders: ac3 ac3_fixed ) D.A.L. adpcm_4xm ADPCM 4X Movie DEA.L. adpcm_adx SEGA CRI ADX ADPCM D.A.L. adpcm_afc ADPCM Nintendo Gamecube AFC D.A.L. adpcm_ct ADPCM Creative Technology D.A.L. adpcm_dtk ADPCM Nintendo Gamecube DTK D.A.L. adpcm_ea ADPCM Electronic Arts D.A.L. adpcm_ea_maxis_xa ADPCM Electronic Arts Maxis CDROM XA D.A.L. adpcm_ea_r1 ADPCM Electronic Arts R1 D.A.L. adpcm_ea_r2 ADPCM Electronic Arts R2 D.A.L. adpcm_ea_r3 ADPCM Electronic Arts R3 D.A.L. adpcm_ea_xas ADPCM Electronic Arts XAS DEA.L. adpcm_g722 G.722 ADPCM (decoders: g722 ) (encoders: g722 ) DEA.L. adpcm_g726 G.726 ADPCM (decoders: g726 ) (encoders: g726 ) D.A.L. adpcm_ima_amv ADPCM IMA AMV D.A.L. adpcm_ima_apc ADPCM IMA CRYO APC D.A.L. adpcm_ima_dk3 ADPCM IMA Duck DK3 D.A.L. adpcm_ima_dk4 ADPCM IMA Duck DK4 D.A.L. adpcm_ima_ea_eacs ADPCM IMA Electronic Arts EACS D.A.L. adpcm_ima_ea_sead ADPCM IMA Electronic Arts SEAD D.A.L. adpcm_ima_iss ADPCM IMA Funcom ISS D.A.L. adpcm_ima_oki ADPCM IMA Dialogic OKI DEA.L. adpcm_ima_qt ADPCM IMA QuickTime D.A.L. adpcm_ima_rad ADPCM IMA Radical D.A.L. adpcm_ima_smjpeg ADPCM IMA Loki SDL MJPEG DEA.L. adpcm_ima_wav ADPCM IMA WAV D.A.L. adpcm_ima_ws ADPCM IMA Westwood DEA.L. adpcm_ms ADPCM Microsoft D.A.L. adpcm_sbpro_2 ADPCM Sound Blaster Pro 2-bit D.A.L. adpcm_sbpro_3 ADPCM Sound Blaster Pro 2.6-bit D.A.L. adpcm_sbpro_4 ADPCM Sound Blaster Pro 4-bit DEA.L. adpcm_swf ADPCM Shockwave Flash D.A.L. adpcm_thp ADPCM Nintendo Gamecube THP D.A.L. adpcm_xa ADPCM CDROM XA DEA.L. adpcm_yamaha ADPCM Yamaha DEA..S alac ALAC (Apple Lossless Audio Codec) DEA.L. amr_nb AMR-NB (Adaptive Multi-Rate NarrowBand) (decoders: amrnb libopencore_amrnb ) (encoders: libopencore_amrnb ) D.A.L. amr_wb AMR-WB (Adaptive Multi-Rate WideBand) (decoders: amrwb libopencore_amrwb ) D.A..S ape Monkey's Audio D.A.L. atrac1 Atrac 1 (Adaptive TRansform Acoustic Coding) D.A.L. atrac3 Atrac 3 (Adaptive TRansform Acoustic Coding 3) ..A.L. atrac3p Sony ATRAC3+ D.A.L. binkaudio_dct Bink Audio (DCT) D.A.L. binkaudio_rdft Bink Audio (RDFT) D.A.L. bmv_audio Discworld II BMV audio ..A.L. celt Constrained Energy Lapped Transform (CELT) DEA.L. comfortnoise RFC 3389 Comfort Noise D.A.L. cook Cook / Cooker / Gecko (RealAudio G2) D.A.L. dsicinaudio Delphine Software International CIN audio DEA.LS dts DCA (DTS Coherent Acoustics) (decoders: dca ) (encoders: dca ) ..A.L. dvaudio DEA.L. eac3 ATSC A/52B (AC-3, E-AC-3) D.A.L. evrc EVRC (Enhanced Variable Rate Codec) DEA..S flac FLAC (Free Lossless Audio Codec) DEA.L. g723_1 G.723.1 D.A.L. g729 G.729 DEA.L. gsm GSM (decoders: gsm libgsm ) (encoders: libgsm ) DEA.L. gsm_ms GSM Microsoft variant (decoders: gsm_ms libgsm_ms ) (encoders: libgsm_ms ) D.A.L. iac IAC (Indeo Audio Coder) ..A.L. ilbc iLBC (Internet Low Bitrate Codec) D.A.L. imc IMC (Intel Music Coder) D.A.L. interplay_dpcm DPCM Interplay D.A.L. mace3 MACE (Macintosh Audio Compression/Expansion) 3:1 D.A.L. mace6 MACE (Macintosh Audio Compression/Expansion) 6:1 D.A..S mlp MLP (Meridian Lossless Packing) D.A.L. mp1 MP1 (MPEG audio layer 1) (decoders: mp1 mp1float ) DEA.L. mp2 MP2 (MPEG audio layer 2) (decoders: mp2 mp2float ) (encoders: mp2 libtwolame ) DEA.L. mp3 MP3 (MPEG audio layer 3) (decoders: mp3 mp3float ) (encoders: libmp3lame ) D.A.L. mp3adu ADU (Application Data Unit) MP3 (MPEG audio layer 3) (decoders: mp3adu mp3adufloat ) D.A.L. mp3on4 MP3onMP4 (decoders: mp3on4 mp3on4float ) D.A..S mp4als MPEG-4 Audio Lossless Coding (ALS) (decoders: als ) D.A.L. musepack7 Musepack SV7 (decoders: mpc7 ) D.A.L. musepack8 Musepack SV8 (decoders: mpc8 ) DEA.L. nellymoser Nellymoser Asao DEA.L. opus Opus (Opus Interactive Audio Codec) (decoders: libopus ) (encoders: libopus ) D.A.L. paf_audio Amazing Studio Packed Animation File Audio DEA.L. pcm_alaw PCM A-law / G.711 A-law D.A..S pcm_bluray PCM signed 16|20|24-bit big-endian for Blu-ray media D.A..S pcm_dvd PCM signed 20|24-bit big-endian DEA..S pcm_f32be PCM 32-bit floating point big-endian DEA..S pcm_f32le PCM 32-bit floating point little-endian DEA..S pcm_f64be PCM 64-bit floating point big-endian DEA..S pcm_f64le PCM 64-bit floating point little-endian D.A..S pcm_lxf PCM signed 20-bit little-endian planar DEA.L. pcm_mulaw PCM mu-law / G.711 mu-law DEA..S pcm_s16be PCM signed 16-bit big-endian DEA..S pcm_s16be_planar PCM signed 16-bit big-endian planar DEA..S pcm_s16le PCM signed 16-bit little-endian DEA..S pcm_s16le_planar PCM signed 16-bit little-endian planar DEA..S pcm_s24be PCM signed 24-bit big-endian DEA..S pcm_s24daud PCM D-Cinema audio signed 24-bit DEA..S pcm_s24le PCM signed 24-bit little-endian DEA..S pcm_s24le_planar PCM signed 24-bit little-endian planar DEA..S pcm_s32be PCM signed 32-bit big-endian DEA..S pcm_s32le PCM signed 32-bit little-endian DEA..S pcm_s32le_planar PCM signed 32-bit little-endian planar DEA..S pcm_s8 PCM signed 8-bit DEA..S pcm_s8_planar PCM signed 8-bit planar DEA..S pcm_u16be PCM unsigned 16-bit big-endian DEA..S pcm_u16le PCM unsigned 16-bit little-endian DEA..S pcm_u24be PCM unsigned 24-bit big-endian DEA..S pcm_u24le PCM unsigned 24-bit little-endian DEA..S pcm_u32be PCM unsigned 32-bit big-endian DEA..S pcm_u32le PCM unsigned 32-bit little-endian DEA..S pcm_u8 PCM unsigned 8-bit D.A.L. pcm_zork PCM Zork D.A.L. qcelp QCELP / PureVoice D.A.L. qdm2 QDesign Music Codec 2 ..A.L. qdmc QDesign Music DEA.L. ra_144 RealAudio 1.0 (14.4K) (decoders: real_144 ) (encoders: real_144 ) D.A.L. ra_288 RealAudio 2.0 (28.8K) (decoders: real_288 ) D.A..S ralf RealAudio Lossless DEA.L. roq_dpcm DPCM id RoQ DEA..S s302m SMPTE 302M D.A..S shorten Shorten D.A.L. sipr RealAudio SIPR / ACELP.NET D.A.L. smackaudio Smacker audio (decoders: smackaud ) ..A.L. smv SMV (Selectable Mode Vocoder) D.A.L. sol_dpcm DPCM Sol DEA... sonic Sonic .EA... sonicls Sonic lossless DEA.L. speex Speex (decoders: libspeex ) (encoders: libspeex ) D.A..S tak TAK (Tom's lossless Audio Kompressor) D.A..S truehd TrueHD D.A.L. truespeech DSP Group TrueSpeech DEA..S tta TTA (True Audio) D.A.L. twinvq VQF TwinVQ D.A.L. vima LucasArts VIMA audio D.A.L. vmdaudio Sierra VMD audio DEA.L. vorbis Vorbis (decoders: vorbis libvorbis ) (encoders: vorbis libvorbis ) ..A.L. voxware Voxware RT29 Metasound D.A... wavesynth Wave synthesis pseudo-codec D.A.LS wavpack WavPack D.A.L. westwood_snd1 Westwood Audio (SND1) (decoders: ws_snd1 ) D.A..S wmalossless Windows Media Audio Lossless D.A.L. wmapro Windows Media Audio 9 Professional DEA.L. wmav1 Windows Media Audio 1 DEA.L. wmav2 Windows Media Audio 2 D.A.L. wmavoice Windows Media Audio Voice D.A.L. xan_dpcm DPCM Xan ..D... dvd_nav_packet DVD Nav packet ..D... klv SMPTE 336M Key-Length-Value (KLV) metadata DES... ass ASS (Advanced SSA) subtitle DES... dvb_subtitle DVB subtitles (decoders: dvbsub ) (encoders: dvbsub ) ..S... dvb_teletext DVB teletext DES... dvd_subtitle DVD subtitles (decoders: dvdsub ) (encoders: dvdsub ) ..S... eia_608 EIA-608 closed captions D.S... hdmv_pgs_subtitle HDMV Presentation Graphic Stream subtitles (decoders: pgssub ) D.S... jacosub JACOsub subtitle D.S... microdvd MicroDVD subtitle DES... mov_text MOV text D.S... mpl2 MPL2 subtitle D.S... pjs PJS (Phoenix Japanimation Society) subtitle D.S... realtext RealText subtitle D.S... sami SAMI subtitle DES... srt SubRip subtitle with embedded timing DES... ssa SSA (SubStation Alpha) subtitle DES... subrip SubRip subtitle D.S... subviewer SubViewer subtitle D.S... subviewer1 SubViewer v1 subtitle D.S... text raw UTF-8 text D.S... vplayer VPlayer subtitle D.S... webvtt WebVTT subtitle DES... xsub XSUB
all ffmpeg codecs that are supported
Codecs: D..... = Decoding supported .E.... = Encoding supported ..V... = Video codec ..A... = Audio codec ..S... = Subtitle codec ...S.. = Supports draw_horiz_band ....D. = Supports direct rendering method 1 .....T = Supports weird frame truncation ------ D V D 4xm 4X Movie D V D 8bps QuickTime 8BPS video D A 8svx_exp 8SVX exponential D A 8svx_fib 8SVX fibonacci D A 8svx_raw 8SVX rawaudio EV a64multi Multicolor charset for Commodore 64 EV a64multi5 Multicolor charset for Commodore 64, extended with 5th color (colram) DEA aac Advanced Audio Coding D A aac_latm AAC LATM (Advanced Audio Codec LATM syntax) D V D aasc Autodesk RLE DEA ac3 ATSC A/52A (AC-3) EA ac3_fixed ATSC A/52A (AC-3) D A adpcm_4xm ADPCM 4X Movie DEA adpcm_adx SEGA CRI ADX ADPCM D A adpcm_ct ADPCM Creative Technology D A adpcm_ea ADPCM Electronic Arts D A adpcm_ea_maxis_xa ADPCM Electronic Arts Maxis CDROM XA D A adpcm_ea_r1 ADPCM Electronic Arts R1 D A adpcm_ea_r2 ADPCM Electronic Arts R2 D A adpcm_ea_r3 ADPCM Electronic Arts R3 D A adpcm_ea_xas ADPCM Electronic Arts XAS D A adpcm_ima_amv ADPCM IMA AMV D A adpcm_ima_dk3 ADPCM IMA Duck DK3 D A adpcm_ima_dk4 ADPCM IMA Duck DK4 D A adpcm_ima_ea_eacs ADPCM IMA Electronic Arts EACS D A adpcm_ima_ea_sead ADPCM IMA Electronic Arts SEAD D A adpcm_ima_iss ADPCM IMA Funcom ISS DEA adpcm_ima_qt ADPCM IMA QuickTime D A adpcm_ima_smjpeg ADPCM IMA Loki SDL MJPEG DEA adpcm_ima_wav ADPCM IMA WAV D A adpcm_ima_ws ADPCM IMA Westwood DEA adpcm_ms ADPCM Microsoft D A adpcm_sbpro_2 ADPCM Sound Blaster Pro 2-bit D A adpcm_sbpro_3 ADPCM Sound Blaster Pro 2.6-bit D A adpcm_sbpro_4 ADPCM Sound Blaster Pro 4-bit DEA adpcm_swf ADPCM Shockwave Flash D A adpcm_thp ADPCM Nintendo Gamecube THP D A adpcm_xa ADPCM CDROM XA DEA adpcm_yamaha ADPCM Yamaha DEA alac ALAC (Apple Lossless Audio Codec) D A als MPEG-4 Audio Lossless Coding (ALS) D A amrnb Adaptive Multi-Rate NarrowBand D A amrwb Adaptive Multi-Rate WideBand D V amv AMV Video D V D anm Deluxe Paint Animation D V D ansi ASCII/ANSI art D A ape Monkey's Audio DES ass Advanced SubStation Alpha subtitle DEV D asv1 ASUS V1 DEV D asv2 ASUS V2 D A atrac1 Atrac 1 (Adaptive TRansform Acoustic Coding) D A atrac3 Atrac 3 (Adaptive TRansform Acoustic Coding 3) D V D aura Auravision AURA D V D aura2 Auravision Aura 2 D V D avs AVS (Audio Video Standard) video D V D bethsoftvid Bethesda VID video D V D bfi Brute Force & Ignorance D A binkaudio_dct Bink Audio (DCT) D A binkaudio_rdft Bink Audio (RDFT) D V binkvideo Bink video DEV D bmp BMP image D V D c93 Interplay C93 D V D camstudio CamStudio D V D camtasia TechSmith Screen Capture Codec D V D cavs Chinese AVS video (AVS1-P2, JiZhun profile) D V D cdgraphics CD Graphics video D V D cinepak Cinepak D V D cljr Cirrus Logic AccuPak D A cook COOK D V D cyuv Creative YUV (CYUV) DEA dca D V D dfa Chronomaster DFA DEV D dnxhd VC3/DNxHD DEV dpx DPX image D A dsicinaudio Delphine Software International CIN audio D V D dsicinvideo Delphine Software International CIN video DES dvbsub DVB subtitles DES dvdsub DVD subtitles DEV D dvvideo DV (Digital Video) D V D dxa Feeble Files/ScummVM DXA DEA eac3 ATSC A/52 E-AC-3 D V D eacmv Electronic Arts CMV video D V D eamad Electronic Arts Madcow Video D V D eatgq Electronic Arts TGQ video D V eatgv Electronic Arts TGV video D V D eatqi Electronic Arts TQI Video D V D escape124 Escape 124 DEV D ffv1 FFmpeg video codec #1 DEVSD ffvhuff Huffyuv FFmpeg variant DEA flac FLAC (Free Lossless Audio Codec) DEV D flashsv Flash Screen Video EV flashsv2 Flash Screen Video Version 2 D V D flic Autodesk Animator Flic video DEVSD flv Flash Video (FLV) / Sorenson Spark / Sorenson H.263 D V D fraps Fraps D V D frwu Forward Uncompressed DEA g722 G.722 ADPCM DEA g726 G.726 ADPCM DEV D gif GIF (Graphics Interchange Format) D A gsm GSM D A gsm_ms GSM Microsoft variant DEV D h261 H.261 DEVSDT h263 H.263 / H.263-1996 D VSD h263i Intel H.263 EV h263p H.263+ / H.263-1998 / H.263 version 2 D V D h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 D V D h264_vdpau H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration) DEVSD huffyuv Huffyuv / HuffYUV D V D idcinvideo id Quake II CIN video D V D iff_byterun1 IFF ByteRun1 D V D iff_ilbm IFF ILBM D A imc IMC (Intel Music Coder) D V D indeo2 Intel Indeo 2 D V D indeo3 Intel Indeo 3 D V indeo5 Intel Indeo Video Interactive 5 D A interplay_dpcm DPCM Interplay D V D interplayvideo Interplay MVE video D V j2k DEV D jpegls JPEG-LS D V D jv Bitmap Brothers JV video D V kgv1 Kega Game Video D V D kmvc Karl Morton's video codec D V D lagarith Lagarith lossless EV libdirac libdirac Dirac 2.2 DEA libgsm libgsm GSM DEA libgsm_ms libgsm GSM Microsoft variant EA libmp3lame libmp3lame MP3 (MPEG audio layer 3) DEA libopencore_amrnb OpenCORE Adaptive Multi-Rate (AMR) Narrow-Band D A libopencore_amrwb OpenCORE Adaptive Multi-Rate (AMR) Wide-Band DEV libschroedinger libschroedinger Dirac 2.2 DEA libspeex libspeex Speex Encoder EV libtheora libtheora Theora EA libvorbis libvorbis Vorbis DEV libvpx libvpx VP8 EV libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 EV libxvid libxvidcore MPEG-4 part 2 EV ljpeg Lossless JPEG D V D loco LOCO D A mace3 MACE (Macintosh Audio Compression/Expansion) 3:1 D A mace6 MACE (Macintosh Audio Compression/Expansion) 6:1 D V D mdec Sony PlayStation MDEC (Motion DECoder) D V D mimic Mimic DEV D mjpeg MJPEG (Motion JPEG) D V D mjpegb Apple MJPEG-B D A mlp MLP (Meridian Lossless Packing) D V D mmvideo American Laser Games MM Video D V D motionpixels Motion Pixels video D A mp1 MP1 (MPEG audio layer 1) D A mp1float MP1 (MPEG audio layer 1) DEA mp2 MP2 (MPEG audio layer 2) D A mp2float MP2 (MPEG audio layer 2) D A mp3 MP3 (MPEG audio layer 3) D A mp3adu ADU (Application Data Unit) MP3 (MPEG audio layer 3) D A mp3adufloat ADU (Application Data Unit) MP3 (MPEG audio layer 3) D A mp3float MP3 (MPEG audio layer 3) D A mp3on4 MP3onMP4 D A mp3on4float MP3onMP4 D A mpc7 Musepack SV7 D A mpc8 Musepack SV8 DEVSDT mpeg1video MPEG-1 video D V DT mpeg1video_vdpau MPEG-1 video (VDPAU acceleration) DEVSDT mpeg2video MPEG-2 video DEVSDT mpeg4 MPEG-4 part 2 D V DT mpeg4_vdpau MPEG-4 part 2 (VDPAU) D VSDT mpegvideo MPEG-1 video D V DT mpegvideo_vdpau MPEG-1/2 video (VDPAU acceleration) D VSDT mpegvideo_xvmc MPEG-1/2 video XvMC (X-Video Motion Compensation) DEVSD msmpeg4 MPEG-4 part 2 Microsoft variant version 3 D VSD msmpeg4v1 MPEG-4 part 2 Microsoft variant version 1 DEVSD msmpeg4v2 MPEG-4 part 2 Microsoft variant version 2 D V D msrle Microsoft RLE DEV D msvideo1 Microsoft Video-1 D V D mszh LCL (LossLess Codec Library) MSZH D V D mxpeg Mobotix MxPEG video DEA nellymoser Nellymoser Asao D V D nuv NuppelVideo/RTJPEG DEV D pam PAM (Portable AnyMap) image DEV D pbm PBM (Portable BitMap) image DEA pcm_alaw PCM A-law D A pcm_bluray PCM signed 16|20|24-bit big-endian for Blu-ray media D A pcm_dvd PCM signed 20|24-bit big-endian DEA pcm_f32be PCM 32-bit floating point big-endian DEA pcm_f32le PCM 32-bit floating point little-endian DEA pcm_f64be PCM 64-bit floating point big-endian DEA pcm_f64le PCM 64-bit floating point little-endian D A pcm_lxf PCM signed 20-bit little-endian planar DEA pcm_mulaw PCM mu-law DEA pcm_s16be PCM signed 16-bit big-endian DEA pcm_s16le PCM signed 16-bit little-endian D A pcm_s16le_planar PCM 16-bit little-endian planar DEA pcm_s24be PCM signed 24-bit big-endian DEA pcm_s24daud PCM D-Cinema audio signed 24-bit DEA pcm_s24le PCM signed 24-bit little-endian DEA pcm_s32be PCM signed 32-bit big-endian DEA pcm_s32le PCM signed 32-bit little-endian DEA pcm_s8 PCM signed 8-bit DEA pcm_u16be PCM unsigned 16-bit big-endian DEA pcm_u16le PCM unsigned 16-bit little-endian DEA pcm_u24be PCM unsigned 24-bit big-endian DEA pcm_u24le PCM unsigned 24-bit little-endian DEA pcm_u32be PCM unsigned 32-bit big-endian DEA pcm_u32le PCM unsigned 32-bit little-endian DEA pcm_u8 PCM unsigned 8-bit DEA pcm_zork PCM Zork DEV D pcx PC Paintbrush PCX image DEV D pgm PGM (Portable GrayMap) image DEV D pgmyuv PGMYUV (Portable GrayMap YUV) image D S pgssub HDMV Presentation Graphic Stream subtitles D V D pictor Pictor/PC Paint DEV D png PNG image DEV D ppm PPM (Portable PixelMap) image D V D ptx V.Flash PTX image D A qcelp QCELP / PureVoice D A qdm2 QDesign Music Codec 2 D V D qdraw Apple QuickDraw D V D qpeg Q-team QPEG DEV D qtrle QuickTime Animation (RLE) video D V D r10k AJA Kona 10-bit RGB Codec D V D r210 Uncompressed RGB 10-bit DEV rawvideo raw video DEA real_144 RealAudio 1.0 (14.4K) encoder D A real_288 RealAudio 2.0 (28.8K) D V D rl2 RL2 video DEA roq_dpcm id RoQ DPCM DEV D roqvideo id RoQ video D V D rpza QuickTime video (RPZA) DEV D rv10 RealVideo 1.0 DEV D rv20 RealVideo 2.0 D V D rv30 RealVideo 3.0 D V D rv40 RealVideo 4.0 D A s302m SMPTE 302M DEV sgi SGI image D A shorten Shorten D A sipr RealAudio SIPR / ACELP.NET D A smackaud Smacker audio D V D smackvid Smacker video D V D smc QuickTime Graphics (SMC) DEV D snow Snow D A sol_dpcm DPCM Sol DEA sonic Sonic EA sonicls Sonic lossless D V D sp5x Sunplus JPEG (SP5X) DES srt SubRip subtitle D V D sunrast Sun Rasterfile image DEV D svq1 Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1 D VSD svq3 Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3 DEV D targa Truevision Targa image D VSD theora Theora D V D thp Nintendo Gamecube THP video D V D tiertexseqvideo Tiertex Limited SEQ video DEV D tiff TIFF image D V D tmv 8088flex TMV D A truehd TrueHD D V D truemotion1 Duck TrueMotion 1.0 D V D truemotion2 Duck TrueMotion 2.0 D A truespeech DSP Group TrueSpeech D A tta True Audio (TTA) D A twinvq VQF TwinVQ D V D txd Renderware TXD (TeXture Dictionary) image D V D ultimotion IBM UltiMotion DEV D v210 Uncompressed 4:2:2 10-bit D V D v210x Uncompressed 4:2:2 10-bit D V vb Beam Software VB D V D vc1 SMPTE VC-1 D V D vc1_vdpau SMPTE VC-1 VDPAU D V D vcr1 ATI VCR1 D A vmdaudio Sierra VMD audio D V D vmdvideo Sierra VMD video D V D vmnc VMware Screen Codec / VMware Video DEA vorbis Vorbis D VSD vp3 On2 VP3 D V D vp5 On2 VP5 D V D vp6 On2 VP6 D V D vp6a On2 VP6 (Flash version, with alpha channel) D V D vp6f On2 VP6 (Flash version) D V D vp8 On2 VP8 D V D vqavideo Westwood Studios VQA (Vector Quantized Animation) video D A wavpack WavPack D A wmapro Windows Media Audio 9 Professional DEA wmav1 Windows Media Audio 1 DEA wmav2 Windows Media Audio 2 D A wmavoice Windows Media Audio Voice DEVSD wmv1 Windows Media Video 7 DEVSD wmv2 Windows Media Video 8 D V D wmv3 Windows Media Video 9 D V D wmv3_vdpau Windows Media Video 9 VDPAU D V D wnv1 Winnov WNV1 D A ws_snd1 Westwood Audio (SND1) D A xan_dpcm DPCM Xan D V D xan_wc3 Wing Commander III / Xan D V D xan_wc4 Wing Commander IV / Xxan D V D xl Miro VideoXL DES xsub DivX subtitles (XSUB) D V yop Psygnosis YOP Video DEV D zlib LCL (LossLess Codec Library) ZLIB DEV D zmbv Zip Motion Blocks Video Note, the names of encoders and decoders do not always match, so there are several cases where the above table shows encoder only or decoder only entries even though both encoding and decoding are supported. For example, the h263 decoder corresponds to the h263 and h263p encoders, for file formats it is even worse.
Download videos from YT channel
# youtube-dl -f best -ciw -o "%(title)s.%(ext)s" -v https://www.youtube.com/channel/UCUAVzSGkkTa-IoMx_x1XK4Q
Cool effects using ffplay
$ ffplay -i /dev/video0 -vf 'lagfun=decay=0.98[tmp]; [tmp] hue=180*sin(t)'
Using ffmpeg with hardware acceleration
$ ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i bulkerasenew.mp4 -c:v h264_vaapi -b:v 2M -maxrate 2M output.mp4