Difference between revisions of "ffmpeg"

From Noah.org
Jump to navigationJump to search
m
Line 46: Line 46:
  
 
=== Create slideshow video that is most compatible across many devices -- it will play back under QuickTime ===
 
=== Create slideshow video that is most compatible across many devices -- it will play back under QuickTime ===
 +
 +
This will create a video that displays a slideshow of all the '''JPEG''' images in the current directory.
 +
The specified framerate will show each slide for 4 seconds.
 
<pre>
 
<pre>
ffmpeg -framerate 0.25 -pattern_type glob -i "*.jpg" -pix_fmt yuv420p -allow_sw 1 video_output.mp4
+
ffmpeg -framerate 0.25 -pattern_type glob -i "*.jpg" video_output.mp4
 
</pre>
 
</pre>

Revision as of 12:21, 11 November 2019


Extract original JPEG images from MJPEG video

You can check if your video is in MJPEG format using ffprobe. You should get the output codec_name=mjpeg.

ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1 input.mov

You can extract lossless individual JPEG images from an MJPEG file. Note the two form of syntax that may be required depending on the version of ffmpeg being used.

ffmpeg -i input.mov -codec:v copy -bsf:v mjpeg2jpeg frame-%04d.jpg

Alternate syntax:

ffmpeg -i input.mov -vcodec copy frame-%04d.jpg

Extract the best quality of still images from a video

Note, if your video is in MJPEG format then see #MJPEG for even better best quality still image extraction.

See the options -qscale:v or the alias -q:v for ffmpeg.

ffmpeg -i input.mp4 -qscale:v 1 frame-%04d.jpg
# or the alias:
ffmpeg -i input.mp4 -q:v 1 frame-%04d.jpg

Note that some people say to use 1 for the quality value, but others say to use 2. I found that 1 seemed to work.

ffmpeg -i input.mp4 -qscale:v 1 frame-%04d.jpg

Create video from a sequence of images

If there is no format to the images you want to convert then you must use the pattern_type option:

ffmpeg -pattern_type glob -i "image-*.jpg" video_output.mov

This sets the framerate and format options.

ffmpeg -framerate 10 -pattern_type glob -i "*.jpg" -c:v libx264 -pix_fmt yuv420p -crf 23 video_output.mp4

Create slideshow video that is most compatible across many devices -- it will play back under QuickTime

This will create a video that displays a slideshow of all the JPEG images in the current directory. The specified framerate will show each slide for 4 seconds.

ffmpeg -framerate 0.25 -pattern_type glob -i "*.jpg" video_output.mp4