FFmpeg: Difference between revisions

From David's Wiki
No edit summary
No edit summary
Line 6: Line 6:
Basic usage is as follows:
Basic usage is as follows:
<pre>
<pre>
ffmpeg -i input_file [-s resolution] [-b bitrate] [-ss start_second] [-t time] output.mp4
ffmpeg -i input_file [-s resolution] [-b bitrate] [-ss start_second] [-t time] [-r output_framerate] output.mp4
</pre>
</pre>


Line 17: Line 17:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
ffmpeg -i input.mp4 -c:v libx264 -profile:v high -pix_fmt yuv420p output.mp4
ffmpeg -i input.mp4 -c:v libx264 -profile:v high -pix_fmt yuv420p output.mp4
</syntaxhighlight>
===Images to Video===
[https://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/image_sequence Reference]<br>
Assuming 60 images per second and you want a 30 fps video.
<syntaxhighlight lang="bash">
ffmpeg -framerate 60 -i image-%03d.png -r 30 video.mp4
</syntaxhighlight>
</syntaxhighlight>



Revision as of 18:42, 18 September 2019

FFmpeg is a library for encoding and decoding multimedia. You can interact with FFmpeg using their command-line interface or using their C API. I find it useful for converting videos to gifs. You can also extract videos into a sequence of images or vice-versa.

CLI

Basic usage is as follows:

ffmpeg -i input_file [-s resolution] [-b bitrate] [-ss start_second] [-t time] [-r output_framerate] output.mp4

x264

x264 is a software h264 decoder and encoder.
[1]

Changing Pixel Format

Encode to h264 with YUV420p pixel format

ffmpeg -i input.mp4 -c:v libx264 -profile:v high -pix_fmt yuv420p output.mp4

Images to Video

Reference
Assuming 60 images per second and you want a 30 fps video.

ffmpeg -framerate 60 -i image-%03d.png -r 30 video.mp4


C API

A doxygen reference manual for their C api is available at [2].