ffmpeg

July26

Loads of pain converting simulation output (ppm and TIF) time series into a movie format that a journal likes has led me to start this page. Heres a list of standard ffmpeg (Mac OSX 10.12.3, Terminal) tools used on Terminal with standard tools. You might need to install some of them if you are on some flavour of Linux (or not).

Caveat: I’m using a MAC OSX 10.12.5 (Sierra) with Xcode and multiple gnu developer tools installed using Mac Ports.

1) Convert .avi files to MAC readable (not just VLC) .mp4 files:

ffmpeg.exe -i %d.png -f mp4 -vcodec libx264 -pix_fmt yuv420p test.mp4

The .png file could be an input .avi file (in which case drop %d.png for your file series)

Convert to MOV using QuickTime->Export.

2) Convert pre-existing movie files in Quicktime .mov format to uncompressed AVI or even MAC compatible .mov

>>ffmpeg -i terasaki.mov -vcodec rawvideo -y terasaki.avi

I recently needed this to make Supplementary Materials files ImageJ readable and neeed UNCOMPRESSED avi files (all compression codecs seemed to trip up ImageJ). The output looks like this:

ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
built on Jun 12 2013 13:46:16 with Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
configuration: –prefix=/opt/local –enable-swscale –enable-avfilter –enable-libmp3lame –enable-libvorbis –enable-libopus –enable-libtheora –enable-libschroedinger –enable-libopenjpeg –enable-libmodplug –enable-libvpx –enable-libspeex –enable-libass –enable-libbluray –enable-gnutls –enable-libfreetype –mandir=/opt/local/share/man –enable-shared –enable-pthreads –cc=/usr/bin/clang –arch=x86_64 –enable-yasm –enable-gpl –enable-postproc –enable-libx264 –enable-libxvid
libavutil      52. 18.100 / 52. 18.100
libavcodec     54. 92.100 / 54. 92.100
libavformat    54. 63.104 / 54. 63.104
libavdevice    54.  3.103 / 54.  3.103
libavfilter     3. 42.103 /  3. 42.103
libswscale      2.  2.100 /  2.  2.100
libswresample   0. 17.102 /  0. 17.102
libpostproc    52.  2.100 / 52.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from ‘terasaki-mk0780641002.mov’:
Metadata:
major_brand     : qt
minor_version   : 0
compatible_brands: qt
creation_time   : 2017-06-19 06:11:05
encoder         : Mac OS X v? (AVF 1046.9.12, CM 1731.15.207, x86_64)
encoder-eng     : Mac OS X v? (AVF 1046.9.12, CM 1731.15.207, x86_64)
Duration: 00:00:04.67, start: 0.000000, bitrate: 926 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0×31637661), yuv420p, 370×220 [SAR 1:1 DAR 37:22], 924 kb/s, 6 fps, 6 tbr, 60 tbn, 120 tbc
Metadata:
creation_time   : 2017-06-19 06:11:05
handler_name    : Core Media Data Handler
Output #0, avi, to ‘terasaki-mk0780641002.avi’:
Metadata:
major_brand     : qt
minor_version   : 0
compatible_brands: qt
encoder-eng     : Mac OS X v? (AVF 1046.9.12, CM 1731.15.207, x86_64)
ISFT            : Lavf54.63.104
Stream #0:0(eng): Video: rawvideo (I420 / 0×30323449), yuv420p, 370×220 [SAR 1:1 DAR 37:22], q=2-31, 200 kb/s, 6 tbn, 6 tbc
Metadata:
creation_time   : 2017-06-19 06:11:05
handler_name    : Core Media Data Handler
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> rawvideo)
Press [q] to stop, [?] for help
frame=   28 fps=0.0 q=0.0 Lsize=    3345kB time=00:00:04.66 bitrate=5871.8kbits/s
video:3339kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.188078%

For the mac OSX compatible movie files (quicktime playable), a small conversion with decocer fix:

>>ffmpeg -i videoS2.mov -pix_fmt yuv420p videoS2-v3.mov

Falls under the entry Encodingfordumbplayers


References:

1) Stackoverflow: http://stackoverflow.com/questions/14430593/encoding-a-readable-movie-by-quicktime-using-ffmpeg

2) FFMPEG User-List http://www.ffmpeg-archive.org/Uncompressed-AVI-to-Uncompressed-Quicktime-td941357.html

3) https://trac.ffmpeg.org/wiki/Encode/H.264#Encodingfordumbplayers