Recherche avancée

Médias (1)

Mot : - Tags -/stallman

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)

  • Recording video on Android using JavaCV (Updated)

    12 février 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 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 java.io.IOException;
    import java.nio.ShortBuffer;

    import com.googlecode.javacv.FFmpegFrameRecorder;

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

    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 = "/mnt/sdcard/stream.flv";

       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 = 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 = 720;
       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);
           }
           prev_rw = 640;
           prev_rh = 360;
           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(imageWidth, imageHeight,
                       IPL_DEPTH_8U, 2);
               Log.i(LOG_TAG, "create yuvIplimage");
           }

           Log.i(LOG_TAG, "ffmpeg_url: " + ffmpeg_link);
           recorder = new FFmpegFrameRecorder(ffmpeg_link, imageWidth,
                   imageHeight, 1);
           recorder.setFormat("flv");
           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);

                   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");
           }
       }
    }

    Anyone know how to fix it ?

    Thanks in advance !

  • I am able to create m3u8 file using ffmpeg from rtmp live but not able to play the file in html5 video tag & apple device

    3 janvier 2014, par Nikita

    I am able to create the m3u8 file by following steps :

    1.Execute ffmpeg -v verbose -i rtmp://<host>:<port>/<stream> -c:v libx264 -c:a aac -ac 1 -strict -2 -crf 18 -profile:v baseline -maxrate 400k -bufsize 1835k -pix_fmt yuv420p -flags -global_header -hls_time 10 -hls_list_size 6 -hls_wrap 10 -start_number 1 <pathtofolderyouwantto>/<streamname>.m3u8
    </streamname></pathtofolderyouwantto></stream></port></host>

    2.Make that folder you just mentioned on ffmpeg command () to be accessible by an http url.

    3.Create a simple html page to play :

    <video controls="controls" width="480" height="270" src="<streamName>.m3u8"></video>

    But not able to play using html5 video tag as well as in apple device.

    following is my ffmpeg console output :

    sending ctrl. type: 0x0003
    Invoking createStream
    FCSubscribe: livestream
    Invoking FCSubscribe
    RTMP_ClientPacket, received: invoke 29 bytes
    (object begin)
    Property:
    Property:
    Property: NULL
    Property:
    (object end)
    HandleInvoke, server invoking &lt;_result>
    HandleInvoke, received result for method call <createstream>
    SendPlay, seekTime=0, stopTime=0, sending play: livestream
    Invoking play
    sending ctrl. type: 0x0003
    RTMP_ClientPacket, received: invoke 21 bytes
    (object begin)
    Property:
    Property:
    Property: NULL
    Property: NULL
    (object end)
    HandleInvoke, server invoking &lt;_result>
    HandleInvoke, received result for method call <fcsubscribe>
    HandleChangeChunkSize, received: chunk size change to 1024
    Received FLV packet before play()! Ignoring.
    HandleCtrl, received ctrl. type: 0, len: 6
    HandleCtrl, Stream Begin 1
    RTMP_ClientPacket, received: invoke 160 bytes
    (object begin)
    Property:
    Property:
    Property: NULL
    Property:
    (object begin)
    Property:
    Property:
    Property:
    Property:
    Property:
    (object end)
    (object end)
    HandleInvoke, server invoking <onstatus>
    HandleInvoke, onStatus: NetStream.Play.Reset
    RTMP_ClientPacket, received: invoke 154 bytes
    (object begin)
    Property:
    Property:
    Property: NULL
    Property:
    (object begin)
    Property:
    Property:
    Property:
    Property:
    Property:
    (object end)
    (object end)
    HandleInvoke, server invoking <onstatus>
    HandleInvoke, onStatus: NetStream.Play.Start
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465657184
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465659184
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465661184
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465662184
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465663184
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465678183
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465680183
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465682183
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465684183
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465686183
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465688183
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465690183
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465692183
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465694183
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465696183
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465698182
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465700182
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465702182
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465704182
    sending ctrl. type: 0x0007
    HandleCtrl, received ctrl. type: 6, len: 6
    HandleCtrl, Ping 1465706182
    sending ctrl. type: 0x0007
    [flv @ 0263ce00] Estimating duration from bitrate, this may be inaccurate
    Input #0, flv, from &#39;rtmp://serveripaddress/oflaDemo/livestream live=1&#39;:
     Duration: N/A, start: 0.000000, bitrate: N/A
       Stream #0:0: Video: vp6f, yuv420p, 320x240, 1k tbr, 1k tbn, 1k tbc
    [graph 0 input from stream 0:0 @ 03020420] w:320 h:240 pixfmt:yuv420p tb:1/1000 fr:1000/1 sar:0/1 sws_param:flags=2
    [libx264 @ 02833600] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2
    [libx264 @ 02833600] profile Constrained Baseline, level 4.2
    [mpegts @ 038c1180] muxrate VBR, pcr every 100 pkts, sdt every 200, pat/pmt every 40 pkts
    Output #0, hls, to &#39;C:/Program Files/Apache Software Foundation/apache-tomcat-6.0.35/webapps/mediaplayer/stream.m3u8&#39;:
     Metadata:
       encoder         : Lavf54.37.100
       Stream #0:0: Video: h264, yuv420p, 320x240, q=-1--1, 90k tbn, 1k tbc
    Stream mapping:
     Stream #0:0 -> #0:0 (vp6f -> libx264)
    Press [q] to stop, [?] for help
    Error while decoding stream #0:0: Error number -1 occurred
       Last message repeated 2 times
    *** 192 dup!
    *** 47 dup!
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 1 times
    Bitrate not available, avio_tell() failed: Error number -22 occurred
    *** 63 dup! fps=0.0 q=28.0 size=       0kB time=00:00:00.56 bitrate=   0.0kbits/s dup=601 drop=0
    *** 47 dup!
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 3 times
    Bitrate not available, avio_tell() failed: Error number -22 occurred
    *** 47 dup! fps=1129 q=47.0 size=       0kB time=00:00:01.17 bitrate=   0.0kbits/s dup=1199 drop=0
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 1 times
    Bitrate not available, avio_tell() failed: Error number -22 occurred
    *** 63 dup! fps=1164 q=40.0 size=       0kB time=00:00:01.82 bitrate=   0.0kbits/s dup=1844 drop=0
    *** 47 dup!
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
    Bitrate not available, avio_tell() failed: Error number -22 occurred
    *** 63 dup! fps=1181 q=57.0 size=       0kB time=00:00:02.48 bitrate=   0.0kbits/s dup=2489 drop=0
       Last message repeated 1 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 1 times
    *** 64 dup!
    Bitrate not available, avio_tell() failed: Error number -22 occurred
    *** 46 dup! fps=1181 q=44.0 size=       0kB time=00:00:03.09 bitrate=   0.0kbits/s dup=3088 drop=0
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
    *** 64 dup!
    *** 62 dup!
    *** 63 dup!
    *** 47 dup!
    *** 64 dup!
    Bitrate not available, avio_tell() failed: Error number -22 occurred
    *** 62 dup! fps=1190 q=49.0 size=       0kB time=00:00:03.74 bitrate=   0.0kbits/s dup=3733 drop=0
    *** 63 dup!
    *** 48 dup!
    *** 62 dup!
    *** 64 dup!
    *** 62 dup!
    *** 48 dup!
    *** 62 dup!
    *** 64 dup!
    *** 62 dup!
    *** 47 dup!
    Bitrate not available, avio_tell() failed: Error number -22 occurred
    *** 63 dup! fps=1201 q=32.0 size=       0kB time=00:00:04.40 bitrate=   0.0kbits/s dup=4377 drop=0
       Last message repeated 2 times
    *** 48 dup!
    *** 63 dup!
       Last message repeated 1 times
    *** 62 dup!
    *** 48 dup!
    *** 63 dup!
       Last message repeated 1 times
    *** 62 dup!
    Bitrate not available, avio_tell() failed: Error number -22 occurred
    *** 48 dup! fps=1214 q=57.0 size=       0kB time=00:00:05.07 bitrate=   0.0kbits/s dup=5038 drop=0
    *** 63 dup!
    *** 62 dup!
    *** 63 dup!
    *** 48 dup!
    *** 62 dup!
    *** 63 dup!
       Last message repeated 1 times
    *** 47 dup!
    *** 64 dup!
    *** 63 dup!
       Last message repeated 1 times
    Bitrate not available, avio_tell() failed: Error number -22 occurred
    *** 47 dup! fps=1226 q=52.0 size=       0kB time=00:00:05.79 bitrate=   0.0kbits/s dup=5747 drop=0
    *** 63 dup!
       Last message repeated 3 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 1 times
    Bitrate not available, avio_tell() failed: Error number -22 occurred
    *** 63 dup! fps=1232 q=57.0 size=       0kB time=00:00:06.51 bitrate=   0.0kbits/s dup=6455 drop=0
    *** 47 dup!
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 1 times
    Bitrate not available, avio_tell() failed: Error number -22 occurred
    *** 63 dup! fps=1240 q=57.0 size=       0kB time=00:00:07.23 bitrate=   0.0kbits/s dup=7163 drop=0
    *** 47 dup!
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 1 times
    Bitrate not available, avio_tell() failed: Error number -22 occurred
    *** 63 dup! fps=1243 q=44.0 size=       0kB time=00:00:07.95 bitrate=   0.0kbits/s dup=7871 drop=0
    *** 47 dup!
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 3 times
    *** 47 dup!
    Bitrate not available, avio_tell() failed: Error number -22 occurred
    *** 63 dup! fps=1245 q=52.0 size=       0kB time=00:00:08.61 bitrate=   0.0kbits/s dup=8516 drop=0
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 2 times
    *** 47 dup!
    Bitrate not available, avio_tell() failed: Error number -22 occurred
    *** 63 dup! fps=1250 q=49.0 size=       0kB time=00:00:09.33 bitrate=   0.0kbits/s dup=9224 drop=0
       Last message repeated 2 times
    *** 47 dup!
    *** 63 dup!
       Last message repeated 1 times
    </onstatus></onstatus></fcsubscribe></createstream>
  • Stream a short video continuously with ffmpeg

    12 janvier 2014, par Blue Sky

    I have a short video (3 sec), and I want to stream it over a UDP address like udp ://127.0.0.1:1000 continously (repeatedly) so that the stream runs forever unless the user stops the streaming session. How can I do so ? Thanks !