From e1c2cb08d184ae89ed69b11128e5597bdcdd83b6 Mon Sep 17 00:00:00 2001 From: Andre Anjos <andre.dos.anjos@gmail.com> Date: Fri, 16 May 2014 11:51:24 +0200 Subject: [PATCH] Fix sphinx documentation and tests --- doc/c_cpp_api.rst | 60 ----- doc/guide.rst | 120 +--------- doc/index.rst | 1 - doc/py_api.rst | 30 ++- doc/video.rst | 556 ---------------------------------------------- 5 files changed, 15 insertions(+), 752 deletions(-) delete mode 100644 doc/video.rst diff --git a/doc/c_cpp_api.rst b/doc/c_cpp_api.rst index 5af4059..1a26b11 100644 --- a/doc/c_cpp_api.rst +++ b/doc/c_cpp_api.rst @@ -166,64 +166,4 @@ Bob HDF5 Support ``*a``) if it is the case. Returns ``0`` in case of failure, ``1`` in case of success. -Bob VideoReader Support ------------------------ - -.. note:: - - The video C-API (and Python) is only available if the package was compiled - with FFMPEG or LibAV support. - -.. cpp:type:: PyBobIoVideoReaderObject - - The pythonic object representation for a ``bob::io::VideoReader`` object. - - .. code-block:: cpp - - typedef struct { - PyObject_HEAD - boost::shared_ptr<bob::io::VideoReader> v; - } PyBobIoVideoReaderObject; - - .. cpp:member:: boost::shared_ptr<bob::io::VideoReader> v - - A pointer to a Bob object being used to read the video contents - -.. cpp:type:: PyBobIoVideoReaderIteratorObject - - The pythonic object representation for an iterator over a - ``bob::io::VideoReader`` object. - - .. code-block:: cpp - - typedef struct { - PyObject_HEAD - PyBobIoVideoReaderObject* pyreader; - boost::shared_ptr<bob::io::VideoReader::const_iterator> iter; - } PyBobIoFileIteratorObject; - - .. cpp:member:: PyBobIoVideoReaderObject* pyreader - - A pointer to the pythonic representation of the video reader. - - .. cpp:member:: boost::shared_ptr<bob::io::VideoReader::const_iterator> iter - - The current position at the file being pointed to, represented by a - formal iterator over the VideoReader. - -.. cpp:type:: PyBobIoVideoReaderObject - - The pythonic object representation for a ``bob::io::VideoWriter`` object. - - .. code-block:: cpp - - typedef struct { - PyObject_HEAD - boost::shared_ptr<bob::io::VideoWriter> v; - } PyBobIoVideoWriterObject; - - .. cpp:member:: boost::shared_ptr<bob::io::VideoWriter> v - - A pointer to a Bob object being used to write contents to the video. - .. include:: links.rst diff --git a/doc/guide.rst b/doc/guide.rst index 491ef1b..e491d01 100644 --- a/doc/guide.rst +++ b/doc/guide.rst @@ -1,11 +1,6 @@ .. vim: set fileencoding=utf-8 : .. Andre Anjos <andre.dos.anjos@gmail.com> -.. Tue 15 Oct 17:41:52 2013 - -.. testsetup:: iotest - - import numpy - import xbob.io.base +.. Fri 16 May 11:48:13 2014 CEST ============ User Guide @@ -340,113 +335,6 @@ the :py:class:`xbob.io.base.Array` container: the read and write operations. Have a look at the manual section for :py:mod:`xbob.io.base` for more details and other shortcuts available. -Reading and writing images --------------------------- - -|project| provides support to load and save data from many different file types -including Matlab ``.mat`` files, various image file types and video data. File -types and specific serialization and de-serialization is switched automatically -using filename extensions. Knowing this, saving an array in a different format -is just a matter of choosing the right extension. This is illustrated in the -following example, where an image generated randomly using the method `NumPy` -:py:meth:`numpy.random.random_integers`, is saved in JPEG format. The image -must be of type uint8 or uint16. - -.. doctest:: - - >>> my_image = numpy.random.random_integers(0,255,(3,256,256)) - >>> xbob.io.base.save(my_image.astype('uint8'), 'testimage.jpg') # saving the image in jpeg format - >>> my_image_copy = xbob.io.base.load('testimage.jpg') - -.. tip:: - - To find out about which formats and extensions are supported in a given - installation of |project|, just call ``bob_config.py`` on your prompt. It - will print a list of compiled-in software and supported extensions. - -The loaded image files can be 3D arrays (for RGB format) or 2D arrays (for -greyscale) of type ``uint8`` or ``uint16``. - -Dealing with videos -------------------- - -|project| has support for dealing with videos in an equivalent way to dealing -with images: - -.. doctest:: - - >>> my_video = numpy.random.random_integers(0,255,(30,3,256,256)) - >>> xbob.io.base.save(my_video.astype('uint8'), 'testvideo.avi') # saving the video avi format with a default codec - >>> my_video_copy = xbob.io.base.load('testvideo.avi') - -Video reading and writing is performed using an `FFmpeg`_ (or `libav`_ if -`FFmpeg`_ is not available) bridge. |project|'s :py:meth:`xbob.io.base.save` -method will allow you to choose the output format with the same extension -mechanism as mentioned earlier. `FFmpeg`_ will then choose a default codec for -the format and perform encoding. The output file can be as easily loaded using -:py:meth:`xbob.io.base.load`. - -For finer control over the loading, saving, format and codecs used for a -specific encoding or decoding operation, you must directly use either -:py:class:`xbob.io.base.VideoReader` or :py:class:`xbob.io.base.VideoWriter` -classes. For example, it is possible to use -:py:class:`xbob.io.base.VideoReader` to read videos frame by frame and avoid -overloading your machine's memory. In the following example you can see how to -create a video, save it using the class :py:class:`xbob.io.base.VideoWriter` -and load it again using the class :py:class:`xbob.io.base.VideoReader`. The -created video will have 30 frames generated randomly. - -.. note:: - - Due to `FFmpeg`_ constrains, the width and height of the video need to be - multiples of two. - -.. doctest:: - - >>> width = 50; height = 50; - >>> framerate = 24 - >>> outv = xbob.io.base.VideoWriter('testvideo.avi', height, width, framerate, codec='mpeg1video') # output video - >>> for i in range(0, 30): - ... newframe = (numpy.random.random_integers(0,255,(3,height,width))) - ... outv.append(newframe.astype('uint8')) - >>> outv.close() - >>> input = xbob.io.base.VideoReader('testvideo.avi') - >>> input.number_of_frames - 30 - >>> inv = input.load() - >>> inv.shape - (30, 3, 50, 50) - >>> type(inv) - <... 'numpy.ndarray'> - -Videos in |project| are represented as sequences of colored images, i.e. 4D -arrays of type ``uint8``. All the extensions and formats for videos supported -in version of |project| installed on your machine can be listed using the -|project|'s utility ``bob_config.py``. - -.. testcleanup:: * - - import shutil - os.chdir(current_directory) - shutil.rmtree(temp_dir) - -.. warning:: - - Please read :doc:`video` for details on choosing codecs and formats that are - adequate to your application, as well as drawbacks and pitfalls with video - encoding and decoding. - -Loading and saving Matlab data ------------------------------- - -An alternative for saving data in ``.mat`` files using -:py:meth:`xbob.io.base.save`, would be to save them as a `HDF5`_ file which -then can be easily read in Matlab. Similarly, instead of having to read -``.mat`` files using :py:meth:`xbob.io.base.load`, you can save your Matlab -data in `HDF5`_ format, which then can be easily read from |project|. Detailed -instructions about how to save and load data from Matlab to and from `HDF5`_ -files can be found `here`__. - .. _audiosignal: Loading and saving audio files @@ -477,10 +365,6 @@ To save a `NumPy` :py:class:`numpy.ndarray` into a wave file, the :py:func:`scipy.io.wavfile.write` could be used, which also requires the framerate to be specified. -.. include:: links.rst - .. Place here your external references - +.. include:: links.rst .. _ddl: http://www.hdfgroup.org/HDF5/doc/ddl.html -.. _matlab-hdf5: http://www.mathworks.ch/help/techdoc/ref/hdf5write.html -__ matlab-hdf5_ diff --git a/doc/index.rst b/doc/index.rst index 2372162..c2240b1 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -21,7 +21,6 @@ Documentation :maxdepth: 2 guide - video py_api c_cpp_api diff --git a/doc/py_api.rst b/doc/py_api.rst index 701f2e1..866049c 100644 --- a/doc/py_api.rst +++ b/doc/py_api.rst @@ -1,45 +1,41 @@ .. vim: set fileencoding=utf-8 : .. Andre Anjos <andre.dos.anjos@gmail.com> -.. Sat 16 Nov 20:52:58 2013 +.. Sat 16 Nov 20:52:58 2013 ============ Python API ============ -This section includes information for using the pure Python API of ``xbob.io``. +This section includes information for using the pure Python API of +``xbob.io.base``. Classes ------- -.. autoclass:: xbob.io.File - -.. autoclass:: xbob.io.HDF5File - -.. autoclass:: xbob.io.VideoReader - -.. autoclass:: xbob.io.VideoWriter +.. autoclass:: xbob.io.base.File +.. autoclass:: xbob.io.base.HDF5File Functions --------- -.. autofunction:: xbob.io.load +.. autofunction:: xbob.io.base.load -.. autofunction:: xbob.io.merge +.. autofunction:: xbob.io.base.merge -.. autofunction:: xbob.io.save +.. autofunction:: xbob.io.base.save -.. autofunction:: xbob.io.append +.. autofunction:: xbob.io.base.append -.. autofunction:: xbob.io.peek +.. autofunction:: xbob.io.base.peek -.. autofunction:: xbob.io.peek_all +.. autofunction:: xbob.io.base.peek_all -.. autofunction:: xbob.io.create_directories_save +.. autofunction:: xbob.io.base.create_directories_save C++ API Helpers --------------- -.. autofunction:: xbob.io.get_include +.. autofunction:: xbob.io.base.get_include diff --git a/doc/video.rst b/doc/video.rst deleted file mode 100644 index 03f59a0..0000000 --- a/doc/video.rst +++ /dev/null @@ -1,556 +0,0 @@ -.. vim: set fileencoding=utf-8 : -.. Andre Anjos <andre.anjos@idiap.ch> -.. Wed 20 Mar 2013 11:30:02 CET -.. -.. Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland - -============================= - Using Videos with |project| -============================= - -Video read and write support in |project| uses FFmpeg_ as implementation -backend. In Ubuntu-based distributions, FFmpeg_ was replaced by libav_, which -is a fork based on FFmpeg_ version 0.8. |project| can detect and use libav_ -when FFmpeg_ is not available on the machine. We currently support a variety of -FFmpeg_ (and libav_) releases, ranging from FFmpeg_ 0.5 until the most recent -branches. - -FFmpeg_ (and libav_) provide a (reasonably) uniform API for reading and writing -data into a variety of video container formats, using different video and audio -codecs. |project| leverages on this API to propose a sub-range of formats and -codecs that work well together, with low distortion patterns and accross -platforms. - -.. note:: - - As much as we strive to make video formats and codecs available to all - platforms in which |project| is available, codecs, in particular may be - disabled by compilation options on FFmpeg_ or libav_, in which case |project| - builds will not be able to use them. - -.. note:: - - Currently, |project| does not support reading or writing of audio streams on - video data - only images. - -This section provides guidance in choosing a set of formats and codecs for your -project, so you will be able to leverage the maximum from |project|. - -Codec and Format Availability ------------------------------ - -To get a list of all FFmpeg_ (or libav_) supported formats for a given build of -|project|, use the ``bob_video_test.py`` application: - -.. code-block:: sh - - $ bob_video_test.py --list-all-codecs # lists all codecs available - - $ bob_video_test.py --list-all-formats # lists all formats available - -These listings represent all that is compiled with your current installation of -FFmpeg_ or libav_. To list supported formats and codecs by |project| use -another set of command-line options: - -.. code-block:: sh - - $ bob_video_test.py --list-codecs # lists all codecs currently supported - - $ bob_video_test.py --list-formats # lists all formats currently supported - -The program ``bob_video_test.py`` can be used to run a sequence of tests using -all combinations of *supported* formats and tests: - -.. code-block:: sh - - $ bob_video_test.py # runs all tests - -This will run through all combinations of supported codecs and formats and will -report average distortion figures for each of 4 different tests, which exercise -different aspects of each combination of format and codec. Here is a an example -output: - -.. code-block:: text - - Video Encoding/Decoding Test Tool v1.2.0a0 (bob_video_test) - Settings: - Width : 128 pixels - Height : 128 pixels - Length : 30 frames - Framerate: 30.000000 Hz - Legend: - C: Color test - N: Noise test - U: User test - S: Frameskip test - Running 4 test(s)...CSNU - - =========== ===== ======= ======================================= - test fmt codec figure (lower means better quality) - =========== ===== ======= ======================================= - color mov h264 4.603 min=0.890@22 max=8.387@9 - frameskip mov h264 0.108 min=0.009@11 max=0.344@0 - noise mov h264 44.900 min=43.916@4 max=46.103@29 - user mov h264 1.983 min=1.525@0 max=2.286@7 - =========== ===== ======= ======================================= - -Each line in the output table represents the average distortion patterns for -the particular test using the format and codec described. The lower the -distortion, the better the combination of format and codecs is. Different tests -have different levels of baseline performance. The figures above were obtained -in a healthy (no know bugs) system, running libav_ 0.8.13 (Ubuntu 12.10). Each -line indicates, besides the average distortion per frame, the minimum and the -maximum obtained and in which frame (counting from 0 - zero), that figure was -obtained. - -The video tests are made on temporary files that are discarded after the test -is completed. You can use the option ``--output=<directory>`` to specify a -directory in which the generated files will be saved. You can then go to these -directories and explore potential problems you may find. - -Each test creates a video from an artificially generated test signal, encodes -it using the defined format and codec and reads it back, comparing the output -result with the original sequence. The sole exception is the ``user`` test. In -this test, a user test sequence is (partially) loaded and tested. If you don't -specify any sequence, a default sequence from |project| is used. If you want to -test a specific sequence of your own, use ``--user-video`` to specify the path -of the video sequence you want to test with. By default, only the first 10 -frames of the sequence are used for the test, to speed-up execution. You can -change this behavior with the option ``--user-frames``. Here is an example: - -.. code-block:: sh - - $ bob_video_test.py --user-video=test_sample.avi - -All tests are executed by default, on all combination of formats and codecs. -That can be long. You can limit the test execution by properly choosing the -format (``--format``), the codec (``--codec``) and the tests to execute. For -example: - -.. code-block:: sh - - # execute only the user video test with a user provided video and - # using the H.264 built-in codec and a MOV output file format. - $ xbob_video_test.py --format mov --codec h264 --user-video=test_sample.avi -- user - -.. note:: - - Not all codecs can be used by all formats available. For example, the ``mp4`` - file format cannot use the ``vp8`` codec, even if both are supported by - |project|. To know which formats support each codec, you can execute the - following python code: - - .. code-block:: python - - import xbob.io - xbob.io.supported_videowriter_formats()['mp4']['supported_codecs'].keys() - ['h264', 'libx264', 'mjpeg', 'mpeg1video'] - - You can see from the output command that only 4 codecs are supported by the - file format ``mp4``. - -You can test new combinations of formats and codecs which are not currently -supported by |project|, as long as they are supported by the underlying FFmpeg_ -or libav_ installations. In this case, just specify the format and/or codec -names using ``--format`` and ``--codec`` options in the application -``xbob_video_test.py``. The advantage of using *supported* formats and codecs is -that we make sure a minimal distortion figure is respected in all platform -nightly builds, with our unit and integration tests. We cannot, currently, -test all possible combinations of codecs and formats. - -Know Your Platforms -------------------- - -One important aspect when working with videos is to know there will be some -lossy compression applied to the output. This means you will **loose** -information when re-encoding. When working with videos, you will want to choose -the combination of format and codec that will work well accross different -platforms. We recommend to run ``xbob_video_test.py`` with a few of your video -inputs to make sure they can be decoded with low distortion where you plan to -work. - -.. note:: - - The only codec that supports lossless compression in |project| is ``zlib``. - Of course, the output files are considerably bigger, but they continue to be - readable using any FFmpeg_-based movie player or even QuickTime (on OSX), if - Perian is installed. - -Example Output in Different Platforms -------------------------------------- - -In what follows, you will find some tabbed output for different combinations of -operating systems and FFmpeg_/libav_ versions. To run these tests we only -executed: - -.. code-block:: sh - - $ xbob_video_test.py - -Idiap Linux (Xubuntu), version 12.10 + libav 0.8.3 -================================================== - -=========== ===== ============ ================================================ - test fmt codec figure (lower means better quality) -=========== ===== ============ ================================================ - color avi ffv1 4.569 min=0.888\@22 max=8.377\@9 - color avi h264 4.603 min=0.890\@22 max=8.388\@9 - color avi libvpx 4.657 min=0.955\@26 max=8.528\@9 - color avi libx264 4.603 min=0.890\@22 max=8.388\@9 - color avi mjpeg 4.676 min=0.965\@22 max=8.469\@9 - color avi mpeg1video 4.781 min=1.103\@28 max=8.483\@9 - color avi mpeg2video 4.741 min=1.004\@16 max=8.466\@9 - color avi mpeg4 4.892 min=1.087\@24 max=8.658\@9 - color avi msmpeg4 4.921 min=1.073\@24 max=8.717\@9 - color avi msmpeg4v2 4.921 min=1.073\@24 max=9.181\@17 - color avi vp8 4.657 min=0.955\@26 max=8.528\@9 - color avi wmv1 4.871 min=1.087\@24 max=8.729\@9 - color avi wmv2 4.884 min=1.093\@24 max=8.823\@9 - color avi zlib 0.000 min=0.000\@0 max=0.000\@0 - color mov ffv1 4.569 min=0.888\@22 max=8.377\@9 - color mov h264 4.603 min=0.890\@22 max=8.387\@9 - color mov libvpx 4.657 min=0.955\@26 max=8.528\@9 - color mov libx264 4.603 min=0.890\@22 max=8.387\@9 - color mov mjpeg 4.676 min=0.965\@22 max=8.469\@9 - color mov mpeg1video 4.781 min=1.103\@28 max=8.483\@9 - color mov mpeg2video 4.741 min=1.004\@16 max=8.466\@9 - color mov mpeg4 4.892 min=1.087\@24 max=8.658\@9 - color mov msmpeg4 4.921 min=1.073\@24 max=8.717\@9 - color mov msmpeg4v2 4.921 min=1.073\@24 max=9.181\@17 - color mov vp8 4.657 min=0.955\@26 max=8.528\@9 - color mov wmv1 4.871 min=1.087\@24 max=8.729\@9 - color mov wmv2 4.884 min=1.093\@24 max=8.823\@9 - color mov zlib 0.000 min=0.000\@0 max=0.000\@0 - color mp4 ffv1 format+codec unsupported - color mp4 h264 4.603 min=0.890\@22 max=8.387\@9 - color mp4 libvpx format+codec unsupported - color mp4 libx264 4.603 min=0.890\@22 max=8.387\@9 - color mp4 mjpeg 4.676 min=0.965\@22 max=8.469\@9 - color mp4 mpeg1video 4.781 min=1.103\@28 max=8.483\@9 - color mp4 mpeg2video 4.741 min=1.004\@16 max=8.466\@9 - color mp4 mpeg4 4.892 min=1.087\@24 max=8.658\@9 - color mp4 msmpeg4 format+codec unsupported - color mp4 msmpeg4v2 format+codec unsupported - color mp4 vp8 format+codec unsupported - color mp4 wmv1 format+codec unsupported - color mp4 wmv2 format+codec unsupported - color mp4 zlib format+codec unsupported - frameskip avi ffv1 0.018 min=0.002\@11 max=0.029\@8 - frameskip avi h264 0.108 min=0.009\@11 max=0.344\@0 - frameskip avi libvpx 0.129 min=0.042\@11 max=0.198\@8 - frameskip avi libx264 0.108 min=0.009\@11 max=0.344\@0 - frameskip avi mjpeg 0.380 min=0.141\@11 max=1.108\@0 - frameskip avi mpeg1video 0.426 min=0.237\@17 max=1.338\@0 - frameskip avi mpeg2video 0.411 min=0.223\@15 max=1.284\@0 - frameskip avi mpeg4 0.454 min=0.263\@17 max=0.858\@0 - frameskip avi msmpeg4 1.684 min=0.257\@12 max=3.766\@15 - frameskip avi msmpeg4v2 1.683 min=0.257\@12 max=3.765\@15 - frameskip avi vp8 0.129 min=0.042\@11 max=0.198\@8 - frameskip avi wmv1 0.627 min=0.191\@11 max=1.568\@8 - frameskip avi wmv2 0.626 min=0.191\@11 max=1.566\@8 - frameskip avi zlib 0.000 min=0.000\@0 max=0.000\@0 - frameskip mov ffv1 0.018 min=0.002\@11 max=0.029\@8 - frameskip mov h264 0.108 min=0.009\@11 max=0.344\@0 - frameskip mov libvpx 0.129 min=0.042\@11 max=0.198\@8 - frameskip mov libx264 0.108 min=0.009\@11 max=0.344\@0 - frameskip mov mjpeg 0.380 min=0.141\@11 max=1.108\@0 - frameskip mov mpeg1video 0.426 min=0.237\@17 max=1.338\@0 - frameskip mov mpeg2video 0.411 min=0.223\@15 max=1.284\@0 - frameskip mov mpeg4 0.454 min=0.263\@17 max=0.858\@0 - frameskip mov msmpeg4 1.684 min=0.257\@12 max=3.766\@15 - frameskip mov msmpeg4v2 1.683 min=0.257\@12 max=3.765\@15 - frameskip mov vp8 0.129 min=0.042\@11 max=0.198\@8 - frameskip mov wmv1 0.627 min=0.191\@11 max=1.568\@8 - frameskip mov wmv2 0.626 min=0.191\@11 max=1.566\@8 - frameskip mov zlib 0.000 min=0.000\@0 max=0.000\@0 - frameskip mp4 ffv1 format+codec unsupported - frameskip mp4 h264 0.108 min=0.009\@11 max=0.344\@0 - frameskip mp4 libvpx format+codec unsupported - frameskip mp4 libx264 0.108 min=0.009\@11 max=0.344\@0 - frameskip mp4 mjpeg 0.380 min=0.141\@11 max=1.108\@0 - frameskip mp4 mpeg1video 0.426 min=0.237\@17 max=1.338\@0 - frameskip mp4 mpeg2video 0.411 min=0.223\@15 max=1.284\@0 - frameskip mp4 mpeg4 0.454 min=0.263\@17 max=0.858\@0 - frameskip mp4 msmpeg4 format+codec unsupported - frameskip mp4 msmpeg4v2 format+codec unsupported - frameskip mp4 vp8 format+codec unsupported - frameskip mp4 wmv1 format+codec unsupported - frameskip mp4 wmv2 format+codec unsupported - frameskip mp4 zlib format+codec unsupported - noise avi ffv1 44.192 min=43.887\@0 max=44.568\@8 - noise avi h264 44.882 min=43.738\@2 max=45.848\@27 - noise avi libvpx 48.629 min=44.156\@12 max=54.365\@27 - noise avi libx264 44.883 min=44.089\@2 max=45.857\@29 - noise avi mjpeg 45.723 min=43.942\@3 max=48.283\@28 - noise avi mpeg1video 46.270 min=44.412\@2 max=48.632\@29 - noise avi mpeg2video 45.227 min=44.008\@5 max=48.528\@29 - noise avi mpeg4 45.769 min=43.720\@4 max=48.472\@27 - noise avi msmpeg4 45.757 min=44.034\@7 max=48.055\@24 - noise avi msmpeg4v2 45.789 min=43.908\@6 max=48.423\@27 - noise avi vp8 48.796 min=43.765\@0 max=50.864\@15 - noise avi wmv1 45.729 min=43.878\@6 max=47.921\@29 - noise avi wmv2 46.105 min=44.205\@3 max=48.261\@28 - noise avi zlib 0.000 min=0.000\@0 max=0.000\@0 - noise mov ffv1 44.200 min=43.869\@20 max=44.719\@22 - noise mov h264 44.882 min=43.991\@6 max=46.183\@27 - noise mov libvpx 48.692 min=43.934\@0 max=50.906\@15 - noise mov libx264 44.909 min=43.773\@3 max=46.079\@29 - noise mov mjpeg 45.754 min=43.823\@8 max=48.278\@28 - noise mov mpeg1video 46.353 min=44.326\@1 max=48.712\@29 - noise mov mpeg2video 45.970 min=43.952\@4 max=50.645\@29 - noise mov mpeg4 45.772 min=43.961\@4 max=48.414\@28 - noise mov msmpeg4 45.764 min=43.867\@5 max=48.156\@29 - noise mov msmpeg4v2 45.844 min=44.009\@6 max=48.317\@27 - noise mov vp8 48.323 min=43.985\@12 max=50.512\@19 - noise mov wmv1 45.803 min=44.109\@3 max=48.334\@29 - noise mov wmv2 46.081 min=43.950\@4 max=48.293\@26 - noise mov zlib 0.000 min=0.000\@0 max=0.000\@0 - noise mp4 ffv1 format+codec unsupported - noise mp4 h264 44.856 min=43.749\@1 max=46.045\@27 - noise mp4 libvpx format+codec unsupported - noise mp4 libx264 44.785 min=43.820\@0 max=46.093\@28 - noise mp4 mjpeg 45.725 min=43.979\@7 max=48.208\@28 - noise mp4 mpeg1video 46.227 min=44.144\@2 max=48.241\@27 - noise mp4 mpeg2video 46.060 min=43.991\@5 max=51.358\@29 - noise mp4 mpeg4 45.690 min=44.072\@6 max=47.974\@28 - noise mp4 msmpeg4 format+codec unsupported - noise mp4 msmpeg4v2 format+codec unsupported - noise mp4 vp8 format+codec unsupported - noise mp4 wmv1 format+codec unsupported - noise mp4 wmv2 format+codec unsupported - noise mp4 zlib format+codec unsupported - user avi ffv1 1.174 min=1.166\@2 max=1.187\@7 - user avi h264 1.988 min=1.525\@0 max=2.290\@7 - user avi libvpx 1.614 min=1.464\@0 max=1.711\@8 - user avi libx264 1.988 min=1.525\@0 max=2.290\@7 - user avi mjpeg 1.067 min=1.014\@2 max=1.444\@0 - user avi mpeg1video 1.586 min=1.447\@1 max=1.895\@0 - user avi mpeg2video 1.743 min=1.515\@3 max=1.891\@8 - user avi mpeg4 1.794 min=1.606\@1 max=1.906\@9 - user avi msmpeg4 1.802 min=1.599\@1 max=1.925\@8 - user avi msmpeg4v2 1.775 min=1.599\@1 max=1.868\@9 - user avi vp8 1.614 min=1.464\@0 max=1.711\@8 - user avi wmv1 1.802 min=1.599\@1 max=1.925\@8 - user avi wmv2 1.799 min=1.596\@1 max=1.921\@8 - user avi zlib 0.000 min=0.000\@0 max=0.000\@0 - user mov ffv1 1.174 min=1.166\@2 max=1.187\@7 - user mov h264 1.983 min=1.525\@0 max=2.286\@7 - user mov libvpx 1.614 min=1.464\@0 max=1.711\@8 - user mov libx264 1.983 min=1.525\@0 max=2.286\@7 - user mov mjpeg 1.067 min=1.014\@2 max=1.444\@0 - user mov mpeg1video 1.586 min=1.447\@1 max=1.895\@0 - user mov mpeg2video 1.743 min=1.515\@3 max=1.891\@8 - user mov mpeg4 1.794 min=1.606\@1 max=1.906\@9 - user mov msmpeg4 1.802 min=1.599\@1 max=1.925\@8 - user mov msmpeg4v2 1.775 min=1.599\@1 max=1.868\@9 - user mov vp8 1.614 min=1.464\@0 max=1.711\@8 - user mov wmv1 1.802 min=1.599\@1 max=1.925\@8 - user mov wmv2 1.799 min=1.596\@1 max=1.921\@8 - user mov zlib 0.000 min=0.000\@0 max=0.000\@0 - user mp4 ffv1 format+codec unsupported - user mp4 h264 1.983 min=1.525\@0 max=2.286\@7 - user mp4 libvpx format+codec unsupported - user mp4 libx264 1.983 min=1.525\@0 max=2.286\@7 - user mp4 mjpeg 1.067 min=1.014\@2 max=1.444\@0 - user mp4 mpeg1video 1.586 min=1.447\@1 max=1.895\@0 - user mp4 mpeg2video 1.743 min=1.515\@3 max=1.891\@8 - user mp4 mpeg4 1.794 min=1.606\@1 max=1.906\@9 - user mp4 msmpeg4 format+codec unsupported - user mp4 msmpeg4v2 format+codec unsupported - user mp4 vp8 format+codec unsupported - user mp4 wmv1 format+codec unsupported - user mp4 wmv2 format+codec unsupported - user mp4 zlib format+codec unsupported -=========== ===== ============ ================================================ - -MacOSX 10.8.3 + FFmpeg 1.1.2 -============================ - -=========== ===== ================== ======================================== - test fmt codec figure (lower is better quality) -=========== ===== ================== ======================================== - color avi ffv1 4.643 min=0.999\@24 max=8.420\@9 - color avi h264 4.685 min=1.001\@24 max=8.473\@9 - color avi libvpx 4.736 min=1.079\@26 max=8.503\@9 - color avi libx264 4.685 min=1.001\@24 max=8.473\@9 - color avi mjpeg 4.617 min=0.934\@24 max=8.440\@9 - color avi mpeg1video 4.820 min=1.125\@16 max=8.548\@9 - color avi mpeg2video 4.787 min=1.130\@16 max=8.465\@9 - color avi mpeg4 4.956 min=1.129\@24 max=8.725\@9 - color avi mpegvideo 4.787 min=1.130\@16 max=8.465\@9 - color avi msmpeg4 4.987 min=1.114\@24 max=8.731\@9 - color avi msmpeg4v2 4.949 min=1.114\@24 max=8.667\@9 - color avi vp8 4.736 min=1.079\@26 max=8.503\@9 - color avi wmv1 4.925 min=1.129\@24 max=8.728\@9 - color avi wmv2 4.936 min=1.138\@24 max=8.796\@9 - color avi zlib 0.000 min=0.000\@0 max=0.000\@0 - color mov ffv1 4.643 min=0.999\@24 max=8.420\@9 - color mov h264 4.645 min=1.001\@24 max=8.424\@9 - color mov libvpx 4.736 min=1.079\@26 max=8.503\@9 - color mov libx264 4.645 min=1.001\@24 max=8.424\@9 - color mov mjpeg 4.617 min=0.934\@24 max=8.440\@9 - color mov mpeg1video 4.820 min=1.125\@16 max=8.548\@9 - color mov mpeg2video 4.787 min=1.130\@16 max=8.465\@9 - color mov mpeg4 4.956 min=1.129\@24 max=8.725\@9 - color mov mpegvideo 4.787 min=1.130\@16 max=8.465\@9 - color mov msmpeg4 4.987 min=1.114\@24 max=8.731\@9 - color mov msmpeg4v2 4.949 min=1.114\@24 max=8.667\@9 - color mov vp8 4.736 min=1.079\@26 max=8.503\@9 - color mov wmv1 4.925 min=1.129\@24 max=8.728\@9 - color mov wmv2 4.936 min=1.138\@24 max=8.796\@9 - color mov zlib 0.000 min=0.000\@0 max=0.000\@0 - color mp4 ffv1 format+codec unsupported - color mp4 h264 4.645 min=1.001\@24 max=8.424\@9 - color mp4 libvpx format+codec unsupported - color mp4 libx264 4.645 min=1.001\@24 max=8.424\@9 - color mp4 mjpeg 4.617 min=0.934\@24 max=8.440\@9 - color mp4 mpeg1video 4.820 min=1.125\@16 max=8.548\@9 - color mp4 mpeg2video 4.787 min=1.130\@16 max=8.465\@9 - color mp4 mpeg4 4.956 min=1.129\@24 max=8.725\@9 - color mp4 mpegvideo 4.787 min=1.130\@16 max=8.465\@9 - color mp4 msmpeg4 format+codec unsupported - color mp4 msmpeg4v2 format+codec unsupported - color mp4 vp8 format+codec unsupported - color mp4 wmv1 format+codec unsupported - color mp4 wmv2 format+codec unsupported - color mp4 zlib format+codec unsupported - frameskip avi ffv1 0.018 min=0.002\@11 max=0.029\@8 - frameskip avi h264 0.120 min=0.017\@21 max=0.300\@0 - frameskip avi libvpx 0.122 min=0.051\@11 max=0.181\@0 - frameskip avi libx264 0.120 min=0.017\@21 max=0.300\@0 - frameskip avi mjpeg 0.386 min=0.147\@11 max=1.085\@0 - frameskip avi mpeg1video 0.427 min=0.243\@11 max=1.310\@0 - frameskip avi mpeg2video 0.408 min=0.229\@17 max=1.258\@0 - frameskip avi mpeg4 0.456 min=0.253\@12 max=0.849\@0 - frameskip avi mpegvideo 0.408 min=0.229\@17 max=1.258\@0 - frameskip avi msmpeg4 1.608 min=0.434\@24 max=3.409\@25 - frameskip avi msmpeg4v2 1.600 min=0.434\@24 max=3.708\@5 - frameskip avi vp8 0.122 min=0.051\@11 max=0.181\@0 - frameskip avi wmv1 0.617 min=0.191\@11 max=1.981\@8 - frameskip avi wmv2 0.614 min=0.191\@11 max=1.978\@8 - frameskip avi zlib 0.000 min=0.000\@0 max=0.000\@0 - frameskip mov ffv1 0.018 min=0.002\@11 max=0.029\@8 - frameskip mov h264 0.042 min=0.011\@11 max=0.085\@9 - frameskip mov libvpx 0.122 min=0.051\@11 max=0.181\@0 - frameskip mov libx264 0.042 min=0.011\@11 max=0.085\@9 - frameskip mov mjpeg 0.386 min=0.147\@11 max=1.085\@0 - frameskip mov mpeg1video 0.427 min=0.243\@11 max=1.310\@0 - frameskip mov mpeg2video 0.408 min=0.229\@17 max=1.258\@0 - frameskip mov mpeg4 0.456 min=0.253\@12 max=0.849\@0 - frameskip mov mpegvideo 0.408 min=0.229\@17 max=1.258\@0 - frameskip mov msmpeg4 1.608 min=0.434\@24 max=3.409\@25 - frameskip mov msmpeg4v2 1.600 min=0.434\@24 max=3.708\@5 - frameskip mov vp8 0.122 min=0.051\@11 max=0.181\@0 - frameskip mov wmv1 0.617 min=0.191\@11 max=1.981\@8 - frameskip mov wmv2 0.614 min=0.191\@11 max=1.978\@8 - frameskip mov zlib 0.000 min=0.000\@0 max=0.000\@0 - frameskip mp4 ffv1 format+codec unsupported - frameskip mp4 h264 0.042 min=0.011\@11 max=0.085\@9 - frameskip mp4 libvpx format+codec unsupported - frameskip mp4 libx264 0.042 min=0.011\@11 max=0.085\@9 - frameskip mp4 mjpeg 0.386 min=0.147\@11 max=1.085\@0 - frameskip mp4 mpeg1video 0.427 min=0.243\@11 max=1.310\@0 - frameskip mp4 mpeg2video 0.408 min=0.229\@17 max=1.258\@0 - frameskip mp4 mpeg4 0.456 min=0.253\@12 max=0.849\@0 - frameskip mp4 mpegvideo 0.408 min=0.229\@17 max=1.258\@0 - frameskip mp4 msmpeg4 format+codec unsupported - frameskip mp4 msmpeg4v2 format+codec unsupported - frameskip mp4 vp8 format+codec unsupported - frameskip mp4 wmv1 format+codec unsupported - frameskip mp4 wmv2 format+codec unsupported - frameskip mp4 zlib format+codec unsupported - noise avi ffv1 44.108 min=43.717\@16 max=44.565\@22 - noise avi h264 44.509 min=43.859\@4 max=45.146\@27 - noise avi libvpx 46.882 min=43.812\@1 max=49.422\@18 - noise avi libx264 44.572 min=43.917\@5 max=45.236\@29 - noise avi mjpeg 45.739 min=43.819\@4 max=48.211\@29 - noise avi mpeg1video 46.320 min=44.273\@3 max=48.996\@29 - noise avi mpeg2video 46.054 min=43.987\@7 max=51.580\@29 - noise avi mpeg4 45.755 min=44.071\@2 max=48.502\@28 - noise avi mpegvideo 44.951 min=43.775\@1 max=46.796\@24 - noise avi msmpeg4 45.749 min=43.934\@5 max=48.267\@29 - noise avi msmpeg4v2 45.846 min=43.987\@0 max=48.264\@27 - noise avi vp8 46.457 min=43.931\@12 max=48.857\@27 - noise avi wmv1 45.804 min=44.219\@10 max=48.252\@28 - noise avi wmv2 46.091 min=44.113\@3 max=48.380\@25 - noise avi zlib 0.000 min=0.000\@0 max=0.000\@0 - noise mov ffv1 44.128 min=43.657\@15 max=44.513\@21 - noise mov h264 44.168 min=43.794\@24 max=44.577\@7 - noise mov libvpx 47.009 min=44.127\@4 max=49.547\@17 - noise mov libx264 44.143 min=43.813\@23 max=44.529\@16 - noise mov mjpeg 44.378 min=44.020\@18 max=44.670\@0 - noise mov mpeg1video 44.564 min=43.903\@9 max=45.314\@0 - noise mov mpeg2video 44.340 min=44.021\@26 max=44.733\@0 - noise mov mpeg4 44.338 min=43.923\@3 max=44.677\@11 - noise mov mpegvideo 44.343 min=43.978\@8 max=44.904\@29 - noise mov msmpeg4 44.293 min=43.870\@9 max=44.669\@24 - noise mov msmpeg4v2 44.256 min=43.859\@5 max=44.596\@21 - noise mov vp8 47.558 min=43.955\@0 max=52.720\@25 - noise mov wmv1 44.283 min=43.848\@24 max=44.643\@14 - noise mov wmv2 44.323 min=43.957\@10 max=44.727\@0 - noise mov zlib 0.000 min=0.000\@0 max=0.000\@0 - noise mp4 ffv1 format+codec unsupported - noise mp4 h264 44.118 min=43.717\@18 max=44.439\@1 - noise mp4 libvpx format+codec unsupported - noise mp4 libx264 44.218 min=43.870\@8 max=44.730\@19 - noise mp4 mjpeg 44.374 min=44.061\@2 max=44.902\@0 - noise mp4 mpeg1video 44.537 min=44.157\@18 max=45.222\@0 - noise mp4 mpeg2video 44.397 min=43.834\@5 max=44.825\@0 - noise mp4 mpeg4 44.276 min=43.875\@9 max=44.912\@17 - noise mp4 mpegvideo 44.339 min=43.812\@2 max=45.328\@0 - noise mp4 msmpeg4 format+codec unsupported - noise mp4 msmpeg4v2 format+codec unsupported - noise mp4 vp8 format+codec unsupported - noise mp4 wmv1 format+codec unsupported - noise mp4 wmv2 format+codec unsupported - noise mp4 zlib format+codec unsupported - user avi ffv1 1.463 min=1.457\@5 max=1.472\@7 - user avi h264 2.028 min=1.666\@0 max=2.201\@9 - user avi libvpx 1.999 min=1.646\@0 max=2.420\@2 - user avi libx264 2.028 min=1.666\@0 max=2.201\@9 - user avi mjpeg 1.197 min=1.149\@6 max=1.532\@0 - user avi mpeg1video 1.760 min=1.641\@1 max=2.061\@0 - user avi mpeg2video 1.882 min=1.694\@3 max=2.026\@0 - user avi mpeg4 1.960 min=1.782\@1 max=2.076\@9 - user avi mpegvideo 1.882 min=1.694\@3 max=2.026\@0 - user avi msmpeg4 1.964 min=1.773\@1 max=2.088\@8 - user avi msmpeg4v2 1.921 min=1.773\@1 max=2.008\@9 - user avi vp8 1.999 min=1.646\@0 max=2.420\@2 - user avi wmv1 1.964 min=1.773\@1 max=2.088\@8 - user avi wmv2 1.958 min=1.768\@1 max=2.082\@8 - user avi zlib 0.000 min=0.000\@0 max=0.000\@0 - user mov ffv1 1.463 min=1.457\@5 max=1.472\@7 - user mov h264 1.533 min=1.477\@0 max=1.566\@7 - user mov libvpx 2.103 min=1.646\@0 max=2.547\@2 - user mov libx264 1.533 min=1.477\@0 max=1.566\@7 - user mov mjpeg 1.197 min=1.149\@6 max=1.532\@0 - user mov mpeg1video 1.760 min=1.641\@1 max=2.061\@0 - user mov mpeg2video 1.882 min=1.694\@3 max=2.026\@0 - user mov mpeg4 1.960 min=1.782\@1 max=2.076\@9 - user mov mpegvideo 1.882 min=1.694\@3 max=2.026\@0 - user mov msmpeg4 1.964 min=1.773\@1 max=2.088\@8 - user mov msmpeg4v2 1.921 min=1.773\@1 max=2.008\@9 - user mov vp8 2.103 min=1.646\@0 max=2.547\@2 - user mov wmv1 1.964 min=1.773\@1 max=2.088\@8 - user mov wmv2 1.958 min=1.768\@1 max=2.082\@8 - user mov zlib 0.000 min=0.000\@0 max=0.000\@0 - user mp4 ffv1 format+codec unsupported - user mp4 h264 1.533 min=1.477\@0 max=1.566\@7 - user mp4 libvpx format+codec unsupported - user mp4 libx264 1.533 min=1.477\@0 max=1.566\@7 - user mp4 mjpeg 1.197 min=1.149\@6 max=1.532\@0 - user mp4 mpeg1video 1.760 min=1.641\@1 max=2.061\@0 - user mp4 mpeg2video 1.882 min=1.694\@3 max=2.026\@0 - user mp4 mpeg4 1.960 min=1.782\@1 max=2.076\@9 - user mp4 mpegvideo 1.882 min=1.694\@3 max=2.026\@0 - user mp4 msmpeg4 format+codec unsupported - user mp4 msmpeg4v2 format+codec unsupported - user mp4 vp8 format+codec unsupported - user mp4 wmv1 format+codec unsupported - user mp4 wmv2 format+codec unsupported - user mp4 zlib format+codec unsupported -=========== ===== ================== ======================================== - -.. include:: links.rst - -.. Place here your external references -- GitLab