Recherche avancée

Médias (3)

Mot : - Tags -/pdf

Autres articles (81)

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    Ce plugin vise à gérer des sites de mise en ligne de documents de tous types.
    Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

  • Supporting all media types

    13 avril 2011, par

    Unlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)

Sur d’autres sites (3541)

  • FFMPEG "Invalid data found when processing input" MP4 to MP3

    10 février 2014, par CubeBoy69

    I have a question. I'm converting videos from youtube to mp3. From 1000 files around 150 files this message is in the log.

    /home/desktop/www/tmp/314629.mp4 : Invalid data found when processing input

    The thing is it's only about 10% of the conversions. How can i solve this issue ?

    I'm converting like this

    ffmpeg -y -i /home/desktop/www/tmp/'.$random_flv_name.'.'.$download_format.' -vn -map_metadata -1 -ab 192k /home/desktop/www/audio/'.$yt_video_id.'/songtitle.mp3
  • Recording video on Android using JavaCV (Updated 2014 02 17)

    25 septembre 2014, par Fabio Bergmann

    I’m trying to record a video in Android using the JavaCV lib.
    I need to record the video in 640x360.

    I have installed everything as described in README.txt file and I followed the example as below :
    https://code.google.com/p/javacv/source/browse/samples/RecordActivity.java
    In this example, the video size is this :
    private int imageWidth = 320 ;
    private int imageHeight = 240 ;

    In my case, I need to record a video in 640x360 H.264.

    (UPDATE) I have reverted my code and kept exactly like in the example, just changing imageWidth and imageHeight to 640x360.
    Now I’m getting the video like this image :
    http://bergmann.net.br/img/screenshot_video_error.png

    Here is my code :

    import static com.googlecode.javacv.cpp.opencv_core.IPL_DEPTH_8U;

    import java.io.IOException;
    import java.nio.ShortBuffer;

    import android.app.Activity;
    import android.content.Context;
    import android.content.pm.ActivityInfo;
    import android.hardware.Camera;
    import android.hardware.Camera.PreviewCallback;
    import android.media.AudioFormat;
    import android.media.AudioRecord;
    import android.media.MediaRecorder;
    import android.os.Bundle;
    import android.os.PowerManager;
    import android.util.Log;
    import android.view.Display;
    import android.view.KeyEvent;
    import android.view.LayoutInflater;
    import android.view.SurfaceHolder;
    import android.view.SurfaceView;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.WindowManager;
    import android.widget.Button;
    import android.widget.LinearLayout;
    import android.widget.RelativeLayout;

    import com.autosonvideo.helpers.Helpers;
    import com.autosonvideo.logic.CameraHelpers;
    import com.googlecode.javacv.FFmpegFrameRecorder;
    import com.googlecode.javacv.cpp.opencv_core.IplImage;

    public class FFmpegRecordActivity extends Activity implements OnClickListener {

       private final static String CLASS_LABEL = "RecordActivity";
       private final static String LOG_TAG = CLASS_LABEL;

       private PowerManager.WakeLock mWakeLock;

       private String ffmpeg_link;

       long startTime = 0;
       boolean recording = false;

       private volatile FFmpegFrameRecorder recorder;

       private boolean isPreviewOn = false;

       private int sampleAudioRateInHz = 44100;
       private int imageWidth = 640;
       private int imageHeight = 480;

       private int finalImageWidth = 640;
       private int finalImageHeight = 360;

       private int frameRate = 30;

       /* audio data getting thread */
       private AudioRecord audioRecord;
       private AudioRecordRunnable audioRecordRunnable;
       private Thread audioThread;
       volatile boolean runAudioThread = true;

       /* video data getting thread */
       private Camera cameraDevice;
       private CameraView cameraView;

       private IplImage yuvIplimage = null;

       /* layout setting */
       private final int bg_screen_bx = 232;
       private final int bg_screen_by = 128;
       private final int bg_screen_width = 700;
       private final int bg_screen_height = 500;
       private final int bg_width = 1123;
       private final int bg_height = 715;
       private final int live_width = 1280;
       private final int live_height = 960;
       private int screenWidth, screenHeight;
       private Button btnRecorderControl;

       @Override
       public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

           setContentView(R.layout.main);

           PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
           mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK,
                   CLASS_LABEL);
           mWakeLock.acquire();

           initLayout();
           initRecorder();
       }

       @Override
       protected void onResume() {
           super.onResume();

           if (mWakeLock == null) {
               PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
               mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK,
                       CLASS_LABEL);
               mWakeLock.acquire();
           }
       }

       @Override
       protected void onPause() {
           super.onPause();

           if (mWakeLock != null) {
               mWakeLock.release();
               mWakeLock = null;
           }
       }

       @Override
       protected void onDestroy() {
           super.onDestroy();

           recording = false;

           if (cameraView != null) {
               cameraView.stopPreview();
               cameraDevice.release();
               cameraDevice = null;
           }

           if (mWakeLock != null) {
               mWakeLock.release();
               mWakeLock = null;
           }
       }

       private void initLayout() {

           /* get size of screen */
           Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE))
                   .getDefaultDisplay();
           screenWidth = display.getWidth();
           screenHeight = display.getHeight();
           RelativeLayout.LayoutParams layoutParam = null;
           LayoutInflater myInflate = null;
           myInflate = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
           RelativeLayout topLayout = new RelativeLayout(this);
           setContentView(topLayout);
           LinearLayout preViewLayout = (LinearLayout) myInflate.inflate(
                   R.layout.main, null);
           layoutParam = new RelativeLayout.LayoutParams(screenWidth, screenHeight);
           topLayout.addView(preViewLayout, layoutParam);

           /* add control button: start and stop */
           btnRecorderControl = (Button) findViewById(R.id.recorder_control);
           btnRecorderControl.setText("Start");
           btnRecorderControl.setOnClickListener(this);

           /* add camera view */
           int display_width_d = (int) (1.0 * bg_screen_width * screenWidth / bg_width);
           int display_height_d = (int) (1.0 * bg_screen_height * screenHeight / bg_height);
           int prev_rw, prev_rh;
           if (1.0 * display_width_d / display_height_d > 1.0 * live_width
                   / live_height) {
               prev_rh = display_height_d;
               prev_rw = (int) (1.0 * display_height_d * live_width / live_height);
           } else {
               prev_rw = display_width_d;
               prev_rh = (int) (1.0 * display_width_d * live_height / live_width);
           }
           layoutParam = new RelativeLayout.LayoutParams(prev_rw, prev_rh);
           layoutParam.topMargin = (int) (1.0 * bg_screen_by * screenHeight / bg_height);
           layoutParam.leftMargin = (int) (1.0 * bg_screen_bx * screenWidth / bg_width);

           cameraDevice = Camera.open();
           Log.i(LOG_TAG, "cameara open");
           cameraView = new CameraView(this, cameraDevice);
           topLayout.addView(cameraView, layoutParam);
           Log.i(LOG_TAG, "cameara preview start: OK");
       }

       // ---------------------------------------
       // initialize ffmpeg_recorder
       // ---------------------------------------
       private void initRecorder() {

           Log.w(LOG_TAG, "init recorder");

           if (yuvIplimage == null) {
               yuvIplimage = IplImage.create(finalImageWidth, finalImageHeight,
                       IPL_DEPTH_8U, 2);
               Log.i(LOG_TAG, "create yuvIplimage");
           }

           ffmpeg_link = CameraHelpers.getOutputMediaFile(
                   CameraHelpers.MEDIA_TYPE_VIDEO).toString();

           Log.i(LOG_TAG, "ffmpeg_url: " + ffmpeg_link);
           recorder = new FFmpegFrameRecorder(ffmpeg_link, finalImageWidth,
                   finalImageHeight, 1);
           recorder.setFormat("mp4");
           recorder.setSampleRate(sampleAudioRateInHz);
           // Set in the surface changed method
           recorder.setFrameRate(frameRate);

           Log.i(LOG_TAG, "recorder initialize success");

           audioRecordRunnable = new AudioRecordRunnable();
           audioThread = new Thread(audioRecordRunnable);
       }

       public void startRecording() {

           try {
               recorder.start();
               startTime = System.currentTimeMillis();
               recording = true;
               audioThread.start();

           } catch (FFmpegFrameRecorder.Exception e) {
               e.printStackTrace();
           }
       }

       public void stopRecording() {

           runAudioThread = false;

           if (recorder != null && recording) {
               recording = false;
               Log.v(LOG_TAG,
                       "Finishing recording, calling stop and release on recorder");
               try {
                   recorder.stop();
                   recorder.release();
               } catch (FFmpegFrameRecorder.Exception e) {
                   e.printStackTrace();
               }
               recorder = null;

           }
       }

       @Override
       public boolean onKeyDown(int keyCode, KeyEvent event) {

           if (keyCode == KeyEvent.KEYCODE_BACK) {
               if (recording) {
                   stopRecording();
               }

               finish();

               return true;
           }

           return super.onKeyDown(keyCode, event);
       }

       // ---------------------------------------------
       // audio thread, gets and encodes audio data
       // ---------------------------------------------
       class AudioRecordRunnable implements Runnable {

           @Override
           public void run() {
               android.os.Process
                       .setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);

               // Audio
               int bufferSize;
               short[] audioData;
               int bufferReadResult;

               bufferSize = AudioRecord
                       .getMinBufferSize(sampleAudioRateInHz,
                               AudioFormat.CHANNEL_IN_MONO,
                               AudioFormat.ENCODING_PCM_16BIT);
               audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
                       sampleAudioRateInHz, AudioFormat.CHANNEL_IN_MONO,
                       AudioFormat.ENCODING_PCM_16BIT, bufferSize);

               audioData = new short[bufferSize];

               Log.d(LOG_TAG, "audioRecord.startRecording()");
               audioRecord.startRecording();

               /* ffmpeg_audio encoding loop */
               while (runAudioThread) {
                   // Log.v(LOG_TAG,"recording? " + recording);
                   bufferReadResult = audioRecord.read(audioData, 0,
                           audioData.length);
                   if (bufferReadResult > 0) {
                       Log.v(LOG_TAG, "bufferReadResult: " + bufferReadResult);
                       // If "recording" isn't true when start this thread, it
                       // never get's set according to this if statement...!!!
                       // Why? Good question...
                       if (recording) {
                           try {
                               recorder.record(ShortBuffer.wrap(audioData, 0,
                                       bufferReadResult));
                               // Log.v(LOG_TAG,"recording " + 1024*i + " to " +
                               // 1024*i+1024);
                           } catch (FFmpegFrameRecorder.Exception e) {
                               Log.v(LOG_TAG, e.getMessage());
                               e.printStackTrace();
                           }
                       }
                   }
               }
               Log.v(LOG_TAG, "AudioThread Finished, release audioRecord");

               /* encoding finish, release recorder */
               if (audioRecord != null) {
                   audioRecord.stop();
                   audioRecord.release();
                   audioRecord = null;
                   Log.v(LOG_TAG, "audioRecord released");
               }
           }
       }

       // ---------------------------------------------
       // camera thread, gets and encodes video data
       // ---------------------------------------------
       class CameraView extends SurfaceView implements SurfaceHolder.Callback,
               PreviewCallback {

           private SurfaceHolder mHolder;
           private Camera mCamera;

           public CameraView(Context context, Camera camera) {
               super(context);
               Log.w("camera", "camera view");
               mCamera = camera;
               mHolder = getHolder();
               mHolder.addCallback(CameraView.this);
               mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
               mCamera.setPreviewCallback(CameraView.this);
           }

           @Override
           public void surfaceCreated(SurfaceHolder holder) {
               try {
                   stopPreview();
                   mCamera.setPreviewDisplay(holder);
               } catch (IOException exception) {
                   mCamera.release();
                   mCamera = null;
               }
           }

           public void surfaceChanged(SurfaceHolder holder, int format, int width,
                   int height) {
               Log.v(LOG_TAG, "Setting imageWidth: " + imageWidth
                       + " imageHeight: " + imageHeight + " frameRate: "
                       + frameRate);
               Camera.Parameters camParams = mCamera.getParameters();
               camParams.setPreviewSize(imageWidth, imageHeight);

               Log.v(LOG_TAG,
                       "Preview Framerate: " + camParams.getPreviewFrameRate());

               camParams.setPreviewFrameRate(frameRate);
               mCamera.setParameters(camParams);
               startPreview();
           }

           @Override
           public void surfaceDestroyed(SurfaceHolder holder) {
               try {
                   mHolder.addCallback(null);
                   mCamera.setPreviewCallback(null);
               } catch (RuntimeException e) {
                   // The camera has probably just been released, ignore.
               }
           }

           public void startPreview() {
               if (!isPreviewOn && mCamera != null) {
                   isPreviewOn = true;
                   mCamera.startPreview();
               }
           }

           public void stopPreview() {
               if (isPreviewOn && mCamera != null) {
                   isPreviewOn = false;
                   mCamera.stopPreview();
               }
           }

           @Override
           public void onPreviewFrame(byte[] data, Camera camera) {
               /* get video data */
               if (yuvIplimage != null && recording) {
                   // yuvIplimage.getByteBuffer().put(data);

                   final int startY = 640 * (480 - 360) / 2;
                   final int lenY = 640 * 360;
                   yuvIplimage.getByteBuffer().put(data, startY, lenY);
                   final int startVU = 640 * 480 + 320 * 2 * (240 - 180) / 2;
                   final int lenVU = 320 * 180 * 2;
                   yuvIplimage.getByteBuffer().put(data, startVU, lenVU);

                   Log.v(LOG_TAG, "Writing Frame");
                   try {
                       long t = 1000 * (System.currentTimeMillis() - startTime);
                       if (t > recorder.getTimestamp()) {
                           recorder.setTimestamp(t);
                       }
                       recorder.record(yuvIplimage);
                   } catch (FFmpegFrameRecorder.Exception e) {
                       Log.v(LOG_TAG, e.getMessage());
                       e.printStackTrace();
                   }
               }
           }
       }

       @Override
       public void onClick(View v) {
           if (!recording) {
               startRecording();
               Log.w(LOG_TAG, "Start Button Pushed");
               btnRecorderControl.setText("Stop");
           } else {
               // This will trigger the audio recording loop to stop and then set
               // isRecorderStart = false;
               stopRecording();
               Log.w(LOG_TAG, "Stop Button Pushed");
               btnRecorderControl.setText("Start");
           }
       }
    }
  • FFMPEG options for video streaming

    26 février 2014, par YorgZ

    I am trying to use ffmpeg to stream video using ffserver. You will find below the ffserver1.conf file, and the log output from the ffmpeg command.

    One of the errors references presets, and everytime I try to use presets I get the error "File not found, even after copying all the preset files in the current directory.

    Thanks for the help.

    YorgZ

    FFSERVER CONF

    YorgZ-Macbook$cat ffserver1.conf
    Port 8090
    BindAddress 0.0.0.0
    MaxHTTPConnections 2000
    MaxClients 1000
    MaxBandwidth 4000
    CustomLog -


    <feed>
         File feed1.ffm
         FileMaxSize 1G
         ACL allow 127.0.0.1
         ACL allow localhost
         ACL allow 10.0.0.0 10.0.255.255
    </feed>

    <stream>
       Feed feed1.ffm
       Format mp4
       VideoFrameRate  29.97
       VideoBitRate    500
       VideoSize   640x352
    </stream>

    <stream>
       Format status
       ACL allow localhost
       ACL allow 10.0.0.0 10.0.255.255
    </stream>
    YorgZ-Macbook$

    FFMPEG COMMAND AND LOG

    YorgZ-Macbook$./ffmpeg -loglevel debug -i TestStream.mp4  -codec:v libx264 -b:v 500k  -vf "scale=640:352" -r 29.97 -codec:a aac -b:a 128k http://127.0.0.1:8090/feed1.ffm

       ffmpeg version 2.1.3-tessus Copyright (c) 2000-2013 the FFmpeg developers
         built on Jan 16 2014 13:50:59 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
         configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --enable-runtime-cpudetect
         libavutil      52. 48.101 / 52. 48.101
         libavcodec     55. 39.101 / 55. 39.101
         libavformat    55. 19.104 / 55. 19.104
         libavdevice    55.  5.100 / 55.  5.100
         libavfilter     3. 90.100 /  3. 90.100
         libswscale      2.  5.101 /  2.  5.101
         libswresample   0. 17.104 /  0. 17.104
         libpostproc    52.  3.100 / 52.  3.100
       Splitting the commandline.
       Reading option &#39;-loglevel&#39; ... matched as option &#39;loglevel&#39; (set logging level) with argument &#39;debug&#39;.
       Reading option &#39;-i&#39; ... matched as input file with argument &#39;TestStream.mp4&#39;.
       Reading option &#39;-codec:v&#39; ... matched as option &#39;codec&#39; (codec name) with argument &#39;libx264&#39;.
       Reading option &#39;-b:v&#39; ... matched as option &#39;b&#39; (video bitrate (please use -b:v)) with argument &#39;500k&#39;.
       Reading option &#39;-vf&#39; ... matched as option &#39;vf&#39; (set video filters) with argument &#39;scale=640:352&#39;.
       Reading option &#39;-r&#39; ... matched as option &#39;r&#39; (set frame rate (Hz value, fraction or abbreviation)) with argument &#39;29.97&#39;.
       Reading option &#39;-codec:a&#39; ... matched as option &#39;codec&#39; (codec name) with argument &#39;aac&#39;.
       Reading option &#39;-b:a&#39; ... matched as option &#39;b&#39; (video bitrate (please use -b:v)) with argument &#39;128k&#39;.
       Reading option &#39;http://127.0.0.1:8090/feed1.ffm&#39; ... matched as output file.
       Finished splitting the commandline.
       Parsing a group of options: global .
       Applying option loglevel (set logging level) with argument debug.
       Successfully parsed a group of options.
       Parsing a group of options: input file TestStream.mp4.
       Successfully parsed a group of options.
       Opening an input file: TestStream.mp4.
       [mov,mp4,m4a,3gp,3g2,mj2 @ 0x10201a200] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
       [mov,mp4,m4a,3gp,3g2,mj2 @ 0x10201a200] ISO: File Type Major Brand: mp42
       [mov,mp4,m4a,3gp,3g2,mj2 @ 0x10201a200] File position before avformat_find_stream_info() is 33783
       [mov,mp4,m4a,3gp,3g2,mj2 @ 0x10201a200] All info found
       [mov,mp4,m4a,3gp,3g2,mj2 @ 0x10201a200] File position after avformat_find_stream_info() is 64138
       Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#39;TestStream.mp4&#39;:
         Metadata:
           major_brand     : mp42
           minor_version   : 0
           compatible_brands: isommp42
           creation_time   : 2014-02-17 10:17:06
         Duration: 00:01:40.10, start: 0.000000, bitrate: 582 kb/s
           Stream #0:0(und), 15, 1/30000: Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1001/60000, 483 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
           Metadata:
             handler_name    : VideoHandler
           Stream #0:1(und), 1, 1/44100: Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 95 kb/s (default)
           Metadata:
             creation_time   : 2014-02-17 10:17:06
             handler_name    : IsoMedia File Produced by Google, 5-11-2011
       Successfully opened the file.
       Parsing a group of options: output file http://127.0.0.1:8090/feed1.ffm.
       Applying option codec:v (codec name) with argument libx264.
       Applying option b:v (video bitrate (please use -b:v)) with argument 500k.
       Applying option vf (set video filters) with argument scale=640:352.
       Applying option r (set frame rate (Hz value, fraction or abbreviation)) with argument 29.97.
       Applying option codec:a (codec name) with argument aac.
       Applying option b:a (video bitrate (please use -b:v)) with argument 128k.
       Successfully parsed a group of options.
       Opening an output file: http://127.0.0.1:8090/feed1.ffm.
       [ffm @ 0x102037200] Format ffm probed with size=2048 and score=101
       [AVIOContext @ 0x101d04fe0] Statistics: 4096 bytes read, 0 seeks
       Mon Feb 24 11:53:05 2014 127.0.0.1 - - [GET] "/feed1.ffm HTTP/1.1" 200 4175
       Successfully opened the file.
       detected 8 logical cores
       [graph 0 input from stream 0:1 @ 0x101d05a20] Setting &#39;time_base&#39; to value &#39;1/44100&#39;
       [graph 0 input from stream 0:1 @ 0x101d05a20] Setting &#39;sample_rate&#39; to value &#39;44100&#39;
       [graph 0 input from stream 0:1 @ 0x101d05a20] Setting &#39;sample_fmt&#39; to value &#39;fltp&#39;
       [graph 0 input from stream 0:1 @ 0x101d05a20] Setting &#39;channel_layout&#39; to value &#39;0x3&#39;
       [graph 0 input from stream 0:1 @ 0x101d05a20] tb:1/44100 samplefmt:fltp samplerate:44100 chlayout:0x3
       [audio format for output stream 0:0 @ 0x102d004e0] Setting &#39;sample_fmts&#39; to value &#39;s16&#39;
       [audio format for output stream 0:0 @ 0x102d004e0] Setting &#39;sample_rates&#39; to value &#39;22050&#39;
       [audio format for output stream 0:0 @ 0x102d004e0] Setting &#39;channel_layouts&#39; to value &#39;0x4&#39;
       [audio format for output stream 0:0 @ 0x102d004e0] auto-inserting filter &#39;auto-inserted resampler 0&#39; between the filter &#39;Parsed_anull_0&#39; and the filter &#39;audio format for output stream 0:0&#39;
       [AVFilterGraph @ 0x101d03ea0] query_formats: 4 queried, 6 merged, 3 already done, 0 delayed
       0.500000 0.500000
       [auto-inserted resampler 0 @ 0x102d00ca0] ch:2 chl:stereo fmt:fltp r:44100Hz -> ch:1 chl:mono fmt:s16 r:22050Hz
       [graph 1 input from stream 0:0 @ 0x103b003a0] Setting &#39;video_size&#39; to value &#39;640x360&#39;
       [graph 1 input from stream 0:0 @ 0x103b003a0] Setting &#39;pix_fmt&#39; to value &#39;0&#39;
       [graph 1 input from stream 0:0 @ 0x103b003a0] Setting &#39;time_base&#39; to value &#39;1/30000&#39;
       [graph 1 input from stream 0:0 @ 0x103b003a0] Setting &#39;pixel_aspect&#39; to value &#39;1/1&#39;
       [graph 1 input from stream 0:0 @ 0x103b003a0] Setting &#39;sws_param&#39; to value &#39;flags=2&#39;
       [graph 1 input from stream 0:0 @ 0x103b003a0] Setting &#39;frame_rate&#39; to value &#39;30000/1001&#39;
       [graph 1 input from stream 0:0 @ 0x103b003a0] w:640 h:360 pixfmt:yuv420p tb:1/30000 fr:30000/1001 sar:1/1 sws_param:flags=2
       [scaler for output stream 0:1 @ 0x103b00900] Setting &#39;w&#39; to value &#39;640&#39;
       [scaler for output stream 0:1 @ 0x103b00900] Setting &#39;h&#39; to value &#39;352&#39;
       [scaler for output stream 0:1 @ 0x103b00900] Setting &#39;flags&#39; to value &#39;0x4&#39;
       [scaler for output stream 0:1 @ 0x103b00900] w:640 h:352 flags:&#39;0x4&#39; interl:0
       [format @ 0x103b00dc0] compat: called with args=[yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16]
       [format @ 0x103b00dc0] Setting &#39;pix_fmts&#39; to value &#39;yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16&#39;
       [AVFilterGraph @ 0x102d00fc0] query_formats: 5 queried, 4 merged, 0 already done, 0 delayed
       [scaler for output stream 0:1 @ 0x103b00900] w:640 h:360 fmt:yuv420p sar:1/1 -> w:640 h:352 fmt:yuv420p sar:44/45 flags:0x4
       [libx264 @ 0x102049800] broken ffmpeg default settings detected
       [libx264 @ 0x102049800] use an encoding preset (e.g. -vpre medium)
       [libx264 @ 0x102049800] preset usage: -vpre <speed> -vpre <profile>
       [libx264 @ 0x102049800] speed presets are listed in x264 --help
       [libx264 @ 0x102049800] profile is optional; x264 defaults to high
       Output #0, ffm, to &#39;http://127.0.0.1:8090/feed1.ffm&#39;:
         Metadata:
           major_brand     : mp42
           minor_version   : 0
           compatible_brands: isommp42
           creation_time   : now
           Stream #0:0(und), 0, 1/1000000: Audio: aac (libvo_aacenc), 22050 Hz, mono, s16, 128 kb/s (default)
           Metadata:
             creation_time   : 2014-02-17 10:17:06
             handler_name    : IsoMedia File Produced by Google, 5-11-2011
           Stream #0:1(und), 0, 1/1000000: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 640x352 [SAR 44:45 DAR 16:9], 1001/30000, q=2-31, 500 kb/s, 1000k tbn, 29.97 tbc (default)
           Metadata:
             handler_name    : VideoHandler
       Stream mapping:
         Stream #0:1 -> #0:0 (aac -> libvo_aacenc)
         Stream #0:0 -> #0:1 (h264 -> libx264)
       Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
       [AVIOContext @ 0x101d04fe0] Statistics: 0 seeks, 0 writeouts
       [AVIOContext @ 0x101d03fa0] Statistics: 65536 bytes read, 0 seeks
       Mon Feb 24 11:53:05 2014 127.0.0.1 - - [POST] "/feed1.ffm HTTP/1.1" 200 0
       YorgZ-Macbook$
    </profile></speed>