Recherche avancée

Médias (2)

Mot : - Tags -/media

Autres articles (100)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 is the first MediaSPIP stable release.
    Its official release date is June 21, 2013 and is announced here.
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

Sur d’autres sites (10243)

  • ffmpeg works at command line but I got this error when I use it in nodejs app :

    15 avril 2023, par Ibrahim Ashour

    This is the code :

    


    import fs from 'fs';
import googleTTS from 'google-tts-api';
import https from 'https';
import { exec } from 'child_process';

async function convertTextToVoice(text, fileName) {
  const outputFile = `./audios/${fileName}.mp3`;

  const words = text.split(' ');
  const chunks = [];
  let chunk = '';

  for (const word of words) {
    if (chunk.length + word.length < 200) {
      chunk += ' ' + word;
    } else {
      chunks.push(chunk.trim());
      chunk = word;
    }
  }

  chunks.push(chunk.trim());

  for (let i = 0; i < chunks.length; i++) {
    const chunkFile = `./audios/${fileName}-chunk${i}.mp3`;
    const url = await googleTTS.getAudioUrl(chunks[i], {
      lang: 'ar',
      slow: false,
      host: 'https://translate.google.com',
    });


    try {
      const file = await fs.createWriteStream(chunkFile);
      https.get(url, response => {
        response.pipe(file);
        file.on('finish', () => {
          file.close();
          console.log(`Chunk ${i} created successfully`);
        });
      }).on('error', error => {
        console.error(`Error downloading chunk ${i}: ${error}`);
      });
    } catch (error) {
      console.error(error);
    }
  }

  const chunkFiles = chunks.map((chunk, i) => `./audios/${fileName}-chunk${i}.mp3`);

  // Use ffmpeg to merge the audio files
  const concatCommand = `ffmpeg -i "concat:${chunkFiles.join('|')}" -acodec copy ${outputFile}`;
  try {
    await new Promise((resolve, reject) => {
      exec(concatCommand, (error, stdout, stderr) => {
        if (error) {
          console.error(`Error executing ffmpeg command: ${error}`);
          reject(error);
        } else {
          console.log(`Audio file ${outputFile} created successfully`);
          resolve();
        }
      });
    });

    for (const chunkFile of chunkFiles) {
      await fs.promises.unlink(chunkFile);
      console.log(`${chunkFile} deleted successfully`);
    }
  } catch (error) {
    console.error(error);
  }
}


    


    This is the Error :
./audios/تجربة-chunk0.mp3|./audios/تجربة-chunk1.mp3
ffmpeg -i "concat :./audios/تجربة-chunk0.mp3|./audios/تجربة-chunk1.mp3" -acodec copy ./audios/تجربة.mp3
Error executing ffmpeg command : Error : Command failed : ffmpeg -i "concat :./audios/تجربة-chunk0.mp3|./audios/تجربة-chunk1.mp3" -acodec copy ./audios/تجربة.mp3
ffmpeg version 2023-02-04-git-bdc76f467f-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
configuration : —enable-gpl —enable-version3 —enable-static —disable-w32threads —disable-autodetect —enable-fontconfig —enable-iconv —enable-gnutls —enable-libxml2 —enable-gmp —enable-bzlib —enable-lzma —enable-libsnappy —enable-zlib —enable-librist —enable-libsrt —enable-libssh —enable-libzmq —enable-avisynth —enable-libbluray —enable-libcaca —enable-sdl2 —enable-libaribb24 —enable-libdav1d —enable-libdavs2 —enable-libuavs3d —enable-libzvbi —enable-librav1e —enable-libsvtav1 —enable-libwebp —enable-libx264 —enable-libx265 —enable-libxavs2 —enable-libxvid —enable-libaom —enable-libjxl —enable-libopenjpeg —enable-libvpx —enable-mediafoundation —enable-libass —enable-frei0r —enable-libfreetype —enable-libfribidi —enable-liblensfun —enable-libvidstab —enable-libvmaf —enable-libzimg —enable-amf —enable-cuda-llvm —enable-cuvid —enable-ffnvcodec —enable-nvdec —enable-nvenc —enable-d3d11va —enable-dxva2 —enable-libvpl —enable-libshaderc —enable-vulkan —enable-libplacebo —enable-opencl —enable-libcdio —enable-libgme —enable-libmodplug —enable-libopenmpt —enable-libopencore-amrwb —enable-libmp3lame —enable-libshine —enable-libtheora —enable-libtwolame —enable-libvo-amrwbenc —enable-libilbc —enable-libgsm —enable-libopencore-amrnb —enable-libopus —enable-libspeex —enable-libvorbis —enable-ladspa —enable-libbs2b —enable-libflite —enable-libmysofa —enable-librubberband —enable-libsoxr —enable-chromaprint
libavutil 57. 44.100 / 57. 44.100
libavcodec 59. 63.100 / 59. 63.100
libavformat 59. 38.100 / 59. 38.100
libavdevice 59. 8.101 / 59. 8.101
libavfilter 8. 56.100 / 8. 56.100
libswscale 6. 8.112 / 6. 8.112
libswresample 4. 9.100 / 4. 9.100
libpostproc 56. 7.100 / 56. 7.100
[mp3 @ 00000177df48a1c0] Format mp3 detected only with low score of 1, misdetection possible !
[mp3 @ 00000177df48a1c0] Failed to read frame size : Could not seek to 1026.
concat :./audios/تجربة-chunk0.mp3|./audios/تجربة-chunk1.mp3 : Invalid argument

    


    Error : Command failed : ffmpeg -i "concat :./audios/تجربة-chunk0.mp3|./audios/تجربة-chunk1.mp3" -acodec copy ./audios/تجربة.mp3
ffmpeg version 2023-02-04-git-bdc76f467f-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
configuration : —enable-gpl —enable-version3 —enable-static —disable-w32threads —disable-autodetect —enable-fontconfig —enable-iconv —enable-gnutls —enable-libxml2 —enable-gmp —enable-bzlib —enable-lzma —enable-libsnappy —enable-zlib —enable-librist —enable-libsrt —enable-libssh —enable-libzmq —enable-avisynth —enable-libbluray —enable-libcaca —enable-sdl2 —enable-libaribb24 —enable-libdav1d —enable-libdavs2 —enable-libuavs3d —enable-libzvbi —enable-librav1e —enable-libsvtav1 —enable-libwebp —enable-libx264 —enable-libx265 —enable-libxavs2 —enable-libxvid —enable-libaom —enable-libjxl —enable-libopenjpeg —enable-libvpx —enable-mediafoundation —enable-libass —enable-frei0r —enable-libfreetype —enable-libfribidi —enable-liblensfun —enable-libvidstab —enable-libvmaf —enable-libzimg —enable-amf —enable-cuda-llvm —enable-cuvid —enable-ffnvcodec —enable-nvdec —enable-nvenc —enable-d3d11va —enable-dxva2 —enable-libvpl —enable-libshaderc —enable-vulkan —enable-libplacebo —enable-opencl —enable-libcdio —enable-libgme —enable-libmodplug —enable-libopenmpt —enable-libopencore-amrwb —enable-libmp3lame —enable-libshine —enable-libtheora —enable-libtwolame —enable-libvo-amrwbenc —enable-libilbc —enable-libgsm —enable-libopencore-amrnb —enable-libopus —enable-libspeex —enable-libvorbis —enable-ladspa —enable-libbs2b —enable-libflite —enable-libmysofa —enable-librubberband —enable-libsoxr —enable-chromaprint
libavutil 57. 44.100 / 57. 44.100
libavcodec 59. 63.100 / 59. 63.100
libavformat 59. 38.100 / 59. 38.100
libavdevice 59. 8.101 / 59. 8.101
libavfilter 8. 56.100 / 8. 56.100
libswscale 6. 8.112 / 6. 8.112
libswresample 4. 9.100 / 4. 9.100
libpostproc 56. 7.100 / 56. 7.100
[mp3 @ 00000177df48a1c0] Format mp3 detected only with low score of 1, misdetection possible !
[mp3 @ 00000177df48a1c0] Failed to read frame size : Could not seek to 1026.
concat :./audios/تجربة-chunk0.mp3|./audios/تجربة-chunk1.mp3 : Invalid argument

    


    at ChildProcess.exithandler (node:child_process:419:12)
at ChildProcess.emit (node:events:513:28)
at maybeClose (node:internal/child_process:1091:16)
at ChildProcess._handle.onexit (node:internal/child_process:302:5) {


    


    code : 1,
killed : false,
signal : null,
cmd : 'ffmpeg -i "concat :./audios/تجربة-chunk0.mp3|./audios/تجربة-chunk1.mp3" -acodec copy ./audios/تجربة.mp3'
}
Chunk 1 created successfully
Chunk 0 created successfully

    


    I expected the command to work in the nodejs app like in the command line

    


  • Launch Symfony 4 command from controller works on dev but not in prod environment

    14 août 2019, par JoakDA

    When an application loads, I make 2 AJAX request to start 2 proccess needed for showing a RTSP video streaming on the website.

    It is working great in DEV environment but making some tests in PROD, it only works if the page is loaded on the server webbrowser (same host where the application is installed).

    If I use an external browser installed on another machine, it doesn’t launch the video.

    If I use an external browser installed on another machine, it doesn’t launch the video.

    /**
    * Start transcoding video.
    * @param Request $request
    * @return Response
    * @Route("devices/show/videotranscoding", name="start_video_transcoding", methods={"POST"})
    * @IsGranted("ROLE_OPERATOR")
    */
    public function startTranscodingVideo(Request $request)
    {
       $value = '';
       try {
           //Setup needed variables
           $this->initialize();

           $this->logger->info('Start Video transcoding: Ok. Video started successfully');

           //Get device id from POST data
           $deviceid = $request->request->get('deviceid');

           //Find device to show from system
           $deviceToShow = $this->repository->find($deviceid);

           if ($deviceToShow) {
               $this->logger->info('Start Video transcoding: . Device has been found. Delete it... Data: ' . $deviceToShow->__toString());

               $realHost = $this->getRealHost($_SERVER['HTTP_HOST']);

               $tcpHost = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$realHost}";

               //Launch transcoding command
               $transcodingCommand = 'php ' . $this->getParameter('kernel.project_dir') . '/bin/console device:videotranscoding ' .
                   'rtsp://' . $deviceToShow->getUsername() . ':' . $deviceToShow->getPassword() . '@' . str_replace('http://', '', $deviceToShow->getHost()) . ':' . $deviceToShow->getRTSPPort() . ' ' .
                   str_replace(' ', '', $deviceToShow->getName()) . ' ' . $tcpHost . ' ' . $deviceToShow->getVideoHTTPPort();

               $transcodingProcess = \Symfony\Component\Process\Process::fromShellCommandline($transcodingCommand);

               $transcodingProcess->start();

               $success = true;
               $message = '';

           } else {
               $message = $this->translator->trans('Device with identifier %deviceid% was not found.',
                   ['%deviceid%' => $deviceid]);
               $success = false;

               $this->addFlash('error', $message);

               $this->logger->error('Start Video transcoding: Ko. Device with identifier ' . $deviceid . ' was not found.');
           }
       } catch (Throwable $exception) {
           $message = $this->translator->trans('Error while executing action. Error detail: %detail%.',
               ['%detail%' => $exception->getMessage()]);

           $this->addFlash(
               'error', $message
           );
           $success = false;

           $this->logger->critical('Start Video transcoding: Ko. Exception catched. Error detail: ' . $exception->getMessage());
       }

       $this->logger->info('Start Video transcoding: Ok. Video started successfully');

       return new JsonResponse(array(
           'success' => $success,
           'message' => $message,
           'value' => $value
       ));
    }

    I have a nodejs script executing in background to listen o a specific port to broadcast the data on the TCP port to a websocket server.

    The ffmpeg command transcodes the RTSP stream and sent to port TCP 8102 and broadcast the data to a websocket server listening on port 8105.

    The transcoding command code :

    /**
    * @param InputInterface $input
    * @param OutputInterface $output
    * @return int|void|null
    * @throws \Exception
    */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
       try {
           $this->logger->info('Start video transcoding: Setup video transcoding...');
           $io = new SymfonyStyle($input, $output);
           $now = new \DateTime();
           $io->title('Start video transcoding at ' . $now->format('d-m-Y G:i:s') . '...');

           //Get input parameters
           $rtspUri = $input->getArgument('rtsp');
           $secret = $input->getArgument('secret');
           $portsString = $input->getArgument('tcp_port');
           $tcpHost = $input->getArgument('tcp_host');

           $this->logger->debug('Start video transcoding: RTSP: "' . $rtspUri . '". TCP Port: ' . $portsString);

           //Absolute path to logs
           $logPath = $this->path . DIRECTORY_SEPARATOR . 'var' . DIRECTORY_SEPARATOR . 'log';
           $stdOutPath = $logPath . DIRECTORY_SEPARATOR . 'transcoding_out.log';
           $stdErrrorPath = $logPath . DIRECTORY_SEPARATOR . 'transcoding_error.log';

           //FFMPEG
           $arguments = '-nostdin -t 00:01:00 -rtsp_transport tcp -i ' . $rtspUri . ' -f mpegts -codec:v mpeg1video -s 1920x1080 -b:v 800k -r 30 -bf 0 ' . $tcpHost . ':' . $portsString . '/' . $secret . ' > '
           . $stdOutPath . ' 2> ' . $stdErrrorPath . ' &';
           $ffmpegParams = '/usr/bin/ffmpeg ' . $arguments;
           //$ffmpegProcess = new Process($ffmpegParams);
           $ffmpegProcess = \Symfony\Component\Process\Process::fromShellCommandline($ffmpegParams);
           $ffmpegProcess->setTimeout(60);
           $ffmpegProcess->setIdleTimeout(60);

           try {
               $ffmpegProcess->start();

               $this->logger->info('Start video transcoding: OK. Video streaming successfully started...');
               $io->success('Start video transcoding: OK. Video streaming successfully started...');
           }catch (ProcessTimedOutException $timedOutException){
               $ffmpegProcess->stop(3, SIGINT);
               $this->io->success('Start video transcoding: Ko. Transcoding finished with error.');
           }
       } catch (Throwable $exception) {
           $message = 'Start video transcoding: Ko. Exception catched. Error detail: ' . $exception->getMessage();
           $this->logger->critical($message);
           $io->error($message);
       }
    }

    The node.js code (got from here JSMpeg – MPEG1 Video & MP2 Audio Decoder in JavaScript :

    // Use the websocket-relay to serve a raw MPEG-TS over WebSockets. You can use
    // ffmpeg to feed the relay. ffmpeg -> websocket-relay -> browser
    // Example:
    // node websocket-relay yoursecret 8081 8082
    // ffmpeg -i <some input="input"> -f mpegts http://localhost:8081/yoursecret

    var fs = require('fs'),
       http = require('http'),
       WebSocket = require('ws');

    if (process.argv.length &lt; 3) {
       console.log(
           'Usage: \n' +
           'node websocket-relay.js <secret> [ ]'
       );

       console.log(process.cwd());

       process.exit();
    }

    var STREAM_SECRET = process.argv[2],
       STREAM_PORT = process.argv[3] || 8081,
       WEBSOCKET_PORT = process.argv[4] || 8082,
       RECORD_STREAM = false;

    // Websocket Server
    var socketServer = new WebSocket.Server({port: WEBSOCKET_PORT, perMessageDeflate: false});
    socketServer.connectionCount = 0;
    socketServer.on('connection', function(socket, upgradeReq) {
       socketServer.connectionCount++;
       console.log(
           'New WebSocket Connection: ',
           (upgradeReq || socket.upgradeReq).socket.remoteAddress,
           (upgradeReq || socket.upgradeReq).headers['user-agent'],
           '('+socketServer.connectionCount+' total)'
       );
       socket.on('close', function(code, message){
           socketServer.connectionCount--;
           console.log(
               'Disconnected WebSocket ('+socketServer.connectionCount+' total)'
           );
       });
    });
    socketServer.broadcast = function(data) {
       socketServer.clients.forEach(function each(client) {
           if (client.readyState === WebSocket.OPEN) {
               client.send(data);
           }
       });
    };

    // HTTP Server to accept incomming MPEG-TS Stream from ffmpeg
    var streamServer = http.createServer( function(request, response) {
       var params = request.url.substr(1).split('/');

       if (params[0] !== STREAM_SECRET) {
           console.log(
               'Failed Stream Connection: '+ request.socket.remoteAddress + ':' +
               request.socket.remotePort + ' - wrong secret.'
           );
           response.end();
       }

       response.connection.setTimeout(0);
       console.log(
           'Stream Connected: ' +
           request.socket.remoteAddress + ':' +
           request.socket.remotePort
       );
       request.on('data', function(data){
           socketServer.broadcast(data);
           if (request.socket.recording) {
               request.socket.recording.write(data);
           }
       });
       request.on('end',function(){
           console.log('close');
           if (request.socket.recording) {
               request.socket.recording.close();
           }
       });

       // Record the stream to a local file?
       if (RECORD_STREAM) {
           var path = 'recordings/' + Date.now() + '.ts';
           request.socket.recording = fs.createWriteStream(path);
       }
    }).listen(STREAM_PORT);

    console.log('Listening for incomming MPEG-TS Stream on http://127.0.0.1:'+STREAM_PORT+'/<secret>');
    console.log('Awaiting WebSocket connections on ws://127.0.0.1:'+WEBSOCKET_PORT+'/');
    </secret></secret></some>

    I am using PHP 7.3 and Symfony 4.3

    I am able to get a successfully response from the controller but I can’t watch the video streaming on an external computer.

    UPDATED : I don’t know if it may be related to the issue, but when I switch to DEV and then switch again to PROD using :

    composer dump-env prod

    If I try to clear the cache with :

    php bin/console cache:clear

    It appears :

    joaquin@dev-computer:/var/www/example.com/html$ composer dump-env prod
    Successfully dumped .env files in .env.local.php
    joaquin@dev-computer:/var/www/example.com/html$ php bin/console cache:clear
    09:15:07 ERROR     [console] Error thrown while running command "cache:clear". Message: "Failed to remove file "/var/www/example.com/html/var/cache/pro~/pools/WBCr1hDG8d/-/R/iW4Vq0vqfrjVsp2Gihwg": unlink(/var/www/example.com/html/var/cache/pro~/pools/WBCr1hDG8d/-/R/iW4Vq0vqfrjVsp2Gihwg): Permission denied." ["exception" => Symfony\Component\Filesystem\Exception\IOException]8;;file:///var/www/example.com/html/vendor/symfony/filesystem/Exception/IOException.php\^]8;;\ { …},"command" => "cache:clear","message" => "Failed to remove file "/var/www/example.com/html/var/cache/pro~/pools/WBCr1hDG8d/-/R/iW4Vq0vqfrjVsp2Gihwg": unlink(/var/www/example.com/html/var/cache/pro~/pools/WBCr1hDG8d/-/R/iW4Vq0vqfrjVsp2Gihwg): Permission denied."]

    In Filesystem.php line 184:

     Failed to remove file "/var/www/example.com/html/var/cache/pro~/pools/WBCr1hDG8d/-/R/iW4Vq0vqfrjVsp2Gihwg": unlink(/va  
    r/www/example.com/html/var/cache/pro~/pools/WBCr1hDG8d/-/R/iW4Vq0vqfrjVsp2Gihwg): Permission denied.                    


    cache:clear [--no-warmup] [--no-optional-warmers] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>
    </command>

    Thanks

  • Two nearly identical ffmpeg commands, one works, the other freezes up

    12 septembre 2019, par dylanjha

    In both of these examples, I’m passing two inputs to ffmpeg applying a filter to the first input, and outputting it all to a .mp4.

    Example 1

    ffmpeg -y -threads 4 -ss 23.536 -t 44.854 -i .tmp/processing/vid-one.webm -ss 13.516 -t 54.874 -i .tmp/processing/vid-two.webm -filter_complex "[0]scale=320:-1,pad=2*iw:2*ih:0:120[left];[1]scale=320:-1[right];[left][right]overlay=main_w/2:120,scale=640:480" -shortest .tmp/processing/temp-23536-68390.mp4

    Example 2

    ffmpeg -y -threads 4 -ss 68.39 -t 3.646 -i .tmp/processing/vid-one.webm -ss 58.37 -t 13.666 -i .tmp/processing/vid-two.webm -filter_complex "[0]scale=320:-1,pad=2*iw:2*ih:0:120[left];[1]scale=320:-1[right];[left][right]overlay=main_w/2:120,scale=640:480" -shortest .tmp/processing/temp-68390-72036.mp4

    In the logging output I can get an idea of where it gets hung up.

    Output Example 1

    the output gets to this frame= line and it updates the output like this

    ffmpeg version 2.7.2 Copyright (c) 2000-2015 the FFmpeg developers
     built with Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
     configuration: --prefix=/usr/local/Cellar/ffmpeg/2.7.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --enable-opencl --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-vda
     libavutil      54. 27.100 / 54. 27.100
     libavcodec     56. 41.100 / 56. 41.100
     libavformat    56. 36.100 / 56. 36.100
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 16.101 /  5. 16.101
     libavresample   2.  1.  0 /  2.  1.  0
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  2.100 /  1.  2.100
     libpostproc    53.  3.100 / 53.  3.100
    Input #0, matroska,webm, from '.tmp/processing/vid-one.webm':
     Metadata:
       encoder         : libwebm-0.2.1.0
       creation_time   : 2015-09-27 18:54:09
     Duration: 00:01:10.35, start: 0.000000, bitrate: 45 kb/s
       Stream #0:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)
       Stream #0:1(eng): Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 1k tbr, 1k tbn, 1k tbc (default)
    Input #1, matroska,webm, from '.tmp/processing/vid-two.webm':
     Metadata:
       encoder         : libwebm-0.2.1.0
       creation_time   : 2015-09-27 18:54:19
     Duration: 00:00:59.58, start: 0.000000, bitrate: 356 kb/s
       Stream #1:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)
       Stream #1:1(eng): Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 1k tbr, 1k tbn, 1k tbc (default)
    [libx264 @ 0x7faa59843e00] using SAR=1/1
    [libx264 @ 0x7faa59843e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    [libx264 @ 0x7faa59843e00] profile High, level 5.2
    [libx264 @ 0x7faa59843e00] 264 - core 144 r2533 c8a773e - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to '.tmp/processing/temp-23536-68390.mp4':
     Metadata:
       encoder         : Lavf56.36.100
       Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=-1--1, 1k fps, 16k tbn, 1k tbc (default)
       Metadata:
         encoder         : Lavc56.41.100 libx264
       Stream #0:1(eng): Audio: aac (libvo_aacenc) ([64][0][0][0] / 0x0040), 48000 Hz, mono, s16, 128 kb/s (default)
       Metadata:
         encoder         : Lavc56.41.100 libvo_aacenc
    Stream mapping:
     Stream #0:1 (vp8) -> scale (graph 0)
     Stream #1:1 (vp8) -> scale (graph 0)
     scale (graph 0) -> Stream #0:0 (libx264)
     Stream #0:0 -> #0:1 (opus (native) -> aac (libvo_aacenc))
    Press [q] to stop, [?] for help
    Input stream #0:1 frame changed from size:640x480 fmt:yuv420p to size:320x240 fmt:yuv420p
    Input stream #1:1 frame changed from size:640x480 fmt:yuv420p to size:1016x846 fmt:yuv420p
    frame=13321 fps=268 q=33.0 size=    1321kB time=00:00:41.85 bitrate= 258.5kbits/s dup=13frame=25895 fps=258 q=33.0 size=    2268kB time=00:00:44.81 bitrate= 414.5kbits/s dup=25frame=35230 fps=244 q=33.0 size=    2936kB time=00:00:44.81 bitrate= 536.6kbits/s dup=35frame=41866 fps=231 q=33.0 size=    3552kB time=00:00:44.81 bitrate= 649.4kbits/s dup=41Past duration 0.999992 too large
    frame=41868 fps=231 q=-1.0 Lsize=    4089kB time=00:00:44.85 bitrate= 746.8kbits/s dup=41862 drop=20    
    video:3108kB audio:479kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 13.986680%
    [libx264 @ 0x7faa59843e00] frame I:168   Avg QP:18.70  size: 12936
    [libx264 @ 0x7faa59843e00] frame P:10552 Avg QP:14.49  size:    37
    [libx264 @ 0x7faa59843e00] frame B:31148 Avg QP:17.67  size:    20
    [libx264 @ 0x7faa59843e00] consecutive B-frames:  0.8%  0.0%  0.0% 99.2%
    [libx264 @ 0x7faa59843e00] mb I  I16..4: 40.0% 39.7% 20.3%
    [libx264 @ 0x7faa59843e00] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.2%  0.0%  0.0%  0.0%  0.0%    skip:99.7%
    [libx264 @ 0x7faa59843e00] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.0%  0.0%  0.0%  direct: 0.0%  skip:100.0%  L0: 7.4% L1:92.6% BI: 0.0%
    [libx264 @ 0x7faa59843e00] 8x8 transform intra:39.8% inter:54.0%
    [libx264 @ 0x7faa59843e00] coded y,uvDC,uvAC intra: 31.6% 26.7% 16.9% inter: 0.0% 0.1% 0.0%
    [libx264 @ 0x7faa59843e00] i16 v,h,dc,p: 68% 22%  9%  1%
    [libx264 @ 0x7faa59843e00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 45% 14%  1%  3%  5%  2%  5%  3%
    [libx264 @ 0x7faa59843e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 47% 10%  1%  2%  2%  3%  2%  3%
    [libx264 @ 0x7faa59843e00] i8c dc,h,v,p: 73% 13% 12%  2%
    [libx264 @ 0x7faa59843e00] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 0x7faa59843e00] ref P L0: 99.3%  0.4%  0.1%  0.2%
    [libx264 @ 0x7faa59843e00] ref B L0: 68.7% 31.3%
    [libx264 @ 0x7faa59843e00] ref B L1: 99.3%  0.7%
    [libx264 @ 0x7faa59843e00] kb/s:608.06

    Output Example 2

    When it gets to the frame= line, it hangs

    ffmpeg version 2.7.2 Copyright (c) 2000-2015 the FFmpeg developers
     built with Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
     configuration: --prefix=/usr/local/Cellar/ffmpeg/2.7.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --enable-opencl --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-vda
     libavutil      54. 27.100 / 54. 27.100
     libavcodec     56. 41.100 / 56. 41.100
     libavformat    56. 36.100 / 56. 36.100
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 16.101 /  5. 16.101
     libavresample   2.  1.  0 /  2.  1.  0
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  2.100 /  1.  2.100
     libpostproc    53.  3.100 / 53.  3.100
    Input #0, matroska,webm, from '.tmp/processing/vid-one.webm':
     Metadata:
       encoder         : libwebm-0.2.1.0
       creation_time   : 2015-09-27 18:54:09
     Duration: 00:01:10.35, start: 0.000000, bitrate: 45 kb/s
       Stream #0:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)
       Stream #0:1(eng): Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 1k tbr, 1k tbn, 1k tbc (default)
    Input #1, matroska,webm, from '.tmp/processing/vid-two.webm':
     Metadata:
       encoder         : libwebm-0.2.1.0
       creation_time   : 2015-09-27 18:54:19
     Duration: 00:00:59.58, start: 0.000000, bitrate: 356 kb/s
       Stream #1:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)
       Stream #1:1(eng): Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 1k tbr, 1k tbn, 1k tbc (default)
    [libx264 @ 0x7fdb4a802600] using SAR=1/1
    [libx264 @ 0x7fdb4a802600] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    [libx264 @ 0x7fdb4a802600] profile High, level 5.2
    [libx264 @ 0x7fdb4a802600] 264 - core 144 r2533 c8a773e - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to '.tmp/processing/temp-68390-72036.mp4':
     Metadata:
       encoder         : Lavf56.36.100
       Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=-1--1, 1k fps, 16k tbn, 1k tbc (default)
       Metadata:
         encoder         : Lavc56.41.100 libx264
       Stream #0:1(eng): Audio: aac (libvo_aacenc) ([64][0][0][0] / 0x0040), 48000 Hz, mono, s16, 128 kb/s (default)
       Metadata:
         encoder         : Lavc56.41.100 libvo_aacenc
    Stream mapping:
     Stream #0:1 (vp8) -> scale (graph 0)
     Stream #1:1 (vp8) -> scale (graph 0)
     scale (graph 0) -> Stream #0:0 (libx264)
     Stream #0:0 -> #0:1 (opus (native) -> aac (libvo_aacenc))
    Press [q] to stop, [?] for help
    Input stream #0:1 frame changed from size:640x480 fmt:yuv420p to size:320x240 fmt:yuv420p
    Input stream #1:1 frame changed from size:640x480 fmt:yuv420p to size:1016x846 fmt:yuv420p
    frame=    0 fps=0.0 q=0.0 Lsize=      17kB time=00:00:01.97 bitrate=  71.8kbits/s

    version : ffmpeg version 2.7.2