Last active
April 22, 2020 08:02
-
-
Save gitnepal/728fe14fc54604d13f63715c8bc2e989 to your computer and use it in GitHub Desktop.
ffmpeg- cheat
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A list of mostly all of the ffmpeg commands that can be used in daily use for conversion, creating images, editing videos . | |
Compress a video | |
ffmpeg -i aabbcc.mov -vcodec libx265 -crf 24 output.mp4 | |
Resize a video | |
-s: switch to resize a video. | |
ffmpeg -i input.mp4 -s 480x320 -c:a copy output.mp4 | |
Convert video from one format to another | |
ffmpeg -i flash_stream.flv -c:v libx264 converted.mp4 | |
ffmpeg -i Wildlife.wmv -c:v libx264 -preset ultrafast sample.mp4 | |
Information of a video | |
ffmpeg -i video.mp4 | |
concatenate video files | |
ffmpeg -f concat -i file-list.txt -c copy output.mp4 | |
Remove the audio from a clip | |
Use the -an parameter to disable the audio portion of a video stream. | |
ffmpeg -i video.mp4 -an mute-video.mp4 | |
Extract the audio from video | |
-vn : extracts audio portion from a video save it using the -ab switch as a 256kbps MP3 audio file. | |
ffmpeg -i video.mp4 -vn -ab 256 audio.mp3 | |
Convert a video into animated GIF | |
ffmpeg -i video.mp4 -vf scale=500:-1 -t 10 -r 10 image.gif | |
Extract image frames from a video | |
ffmpeg -ss 00:00:15 -i video.mp4 -vf scale=800:-1 -vframes 1 image.jpg | |
Convert Video into Images | |
This command saves image frame after every 4 seconds. | |
ffmpeg -i movie.mp4 -r 0.25 frames.png | |
Create video slideshow from images | |
This command creates a video slideshow using a series of images that are named as img001.png, img002.png, etc. | |
Each image will have a duration of 5 seconds (-r 1/5). | |
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p slideshow.mp4 | |
Split a video into multiple parts | |
This command will split the source video into 2 parts – | |
one ending at 30s from the start and the other beginning at 30s and ending at the end of the input video. | |
ffmpeg -i video.mp4 -t 00:00:30 -c copy part-1.mp4 -ss 00:00:30 -codec copy part-2.mp4 | |
Cut video file into a smaller file | |
-ss: specify the start time stamp in HH:MM:SS.ms format | |
-t: specify duration of the video in seconds. | |
ffmpeg -i input.mp4 -ss 00:00:50.0 -codec copy -t 20 output.mp4 | |
Use the -t parameter to specify the duration of the video. | |
ffmpeg -loop 1 -i image.png -c:v libx264 -t 30 -pix_fmt yuv420p video.mp4 | |
Add subtitles to a movie | |
This will take the subtitles from the .srt file. FFmpeg can decode most common subtitle formats. | |
ffmpeg -i movie.mp4 -i subtitles.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mkv | |
Crop an audio file | |
This will create a 30 second audio file starting at 90 seconds from the original audio file without transcoding. | |
ffmpeg -ss 00:01:30 -t 30 -acodec copy -i inputfile.mp3 outputfile.mp3 | |
Change the audio volume | |
You can use the volume filter to alter the volume of a media file using FFmpeg. | |
This command will half the volume of the audio file. | |
ffmpeg -i input.wav -af 'volume=0.5' output.wav | |
Rotate a video | |
This command will rotate a video clip 90° clockwise. | |
You can set transpose to 2 to rotate the video 90° anti-clockwise. | |
ffmpeg -i input.mp4 -filter:v 'transpose=1' rotated-video.mp4 | |
This will rotate the video 180° counter-clockwise. | |
ffmpeg -i input.mp4 -filter:v 'transpose=2,transpose=2' rotated-video.mp4 | |
Speed up or Slow down the video | |
You can change the speed of your video using the setpts (set presentation time stamp) filter of FFmpeg. | |
This command will make the video 8x (1/8) faster or use setpts=4*PTS to make the video 4x slower. | |
ffmpeg -i input.mp4 -filter:v "setpts=0.125*PTS" output.mp4 | |
Speed up or Slow down the audio | |
For changing the speed of audio, use the atempo audio filter. This command will double the speed of audio. | |
You can use any value between 0.5 and 2.0 for audio. | |
ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv | |
Merge an audio and video file | |
You can also specify the -shortest switch to finish the encoding when the shortest clip ends. | |
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental part1.mp4 | |
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental -shortest part2.mp4 | |
Extract Frames from Video1.1 Extract the first frame from video | |
ffmpeg –vframes 1 –i input_video_file_name –f image2 output_frame.bmp | |
ffmpeg also supports other image formats like .png or .jpg.1.2 Extract all frames from video | |
ffmpeg –i input_video_file_name –f image2 output_file_name_format.bmp | |
Note that output_file_name_format.bmp can be, for example, %05d.bmpCrop Video | |
ffmpeg –i input_video_file_name –vf crop=w:h:x:y output_file_name | |
Note that w and h are width and height, and x, y is the position of the top-left corner before crop. | |
vf means video filter. crop is kind of video filter in ffmpeg.Convert Image between Different Formats | |
ffmpeg –i input_image_file_name.ext1 output_image_file_name.ext2 | |
Create Video from Sequences of Images | |
ffmpeg –r 20 –i %input_image_file_name_format.ext video_file_name.ext2 | |
As an example, ffmpeg –r 20 –i %05.bmp test.aviConvert Video to Different Container Formats | |
ffmpeg –i input_video_file_name.ext1 output_video_file_name.ext2 | |
Example 1: Convert Video from AVI to FLV | |
Sometimes ffmpeg cannot figure out everything itself, we may need to supply more info. | |
I encountered an example where I’ll need to specify the output video, audio codec and scale. | |
ffmpeg -i recording_3.avi -f flv -vcodec copy -acodec copy -s 1280×720 recording3.flv | |
Note that the command above only changes the container format, it specifies same audio/video codec (using the “copy” option) | |
as the avi file for the output flv file. | |
This command runs very fast as it left the codec untouched.Convert Video to Different Codec (Transcoding) | |
ffmpeg -i input_video_file_name.ext1 -vcodec xxx -r xx -s aaaaxbbbb -aspect xx:xx -b xxxxk output_file_name.ext2 | |
As an example, | |
ffmpeg -i h1.mp4 -vcodec mpeg4 -r 30 -s 1280×720 -aspect 16:9 -b 10000k h1_1280_720.mp4 | |
This command takes input h1.mp4 (it has h264 codec in my case), transcode it to mpeg4 codec, with frame rate 30 fps, | |
resolution 1280×720, aspect ratio 16:9, bitrate of 10000 kbits/s, and output it to h1_1280_720.mp4 file. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment