Recherche avancée

Médias (0)

Mot : - Tags -/logo

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (102)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    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 (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (10836)

  • How to extract a fixed number of frames with ffmpeg ?

    10 mars 2016, par W. Han

    I am trying to extract a fixed number of frames uniformly from a bunch of videos(say 50 frames from each video, 10,000 videos in total).

    Since the duration varies, I calculated the ideal output fps for each video and take it as a parameter for ffmpeg extraction, but failed to get the required number of frames.

    Does anyone know how to extract a fixed number of frames with ffmpeg, or other tools ? Thanks !

  • Android recording video with overlay view [way 2]

    2 mars 2016, par t0m

    I am trying app in android which have functionality to capture video with overlay views. I tried two ways (1. and 2.).
    1. Via SurfaceView and JavaCV with FFmpeg.
    2. Via OpenCV and JavaCV with FFmpeg.
    3. For API21+ maybe with MediaProjection.

    (Question is divided to two questions, due to stackoverflow length limit.)

    ad 1. Via SurfaceView and JavaCV with FFmpeg :

    Here

    ad 2. Via OpenCV and JavaCV with FFmpeg :

    OpenCVCameraActivity.java :

    import android.app.Activity;
    import android.hardware.Camera;
    import android.media.AudioFormat;
    import android.media.AudioRecord;
    import android.media.MediaRecorder;
    import android.os.Bundle;
    import android.os.Environment;
    import android.util.Log;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.MotionEvent;
    import android.view.SubMenu;
    import android.view.SurfaceView;
    import android.view.View;
    import android.view.WindowManager;
    import android.widget.Toast;

    import org.bytedeco.javacv.FFmpegFrameRecorder;
    import org.bytedeco.javacv.Frame;
    import org.opencv.android.BaseLoaderCallback;
    import org.opencv.android.CameraBridgeViewBase;
    import org.opencv.android.LoaderCallbackInterface;
    import org.opencv.android.OpenCVLoader;
    import org.opencv.core.Mat;

    import java.io.File;
    import java.nio.ByteBuffer;
    import java.nio.ShortBuffer;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;
    import java.util.ListIterator;

    @SuppressWarnings("ALL")
    public class OpenCVCameraActivity extends Activity implements
           CameraBridgeViewBase.CvCameraViewListener2,
           View.OnTouchListener {

       //name of activity, for DEBUGGING
       private static final String TAG = OpenCVCameraActivity.class.getSimpleName();

       private OpenCVCameraPreview mOpenCvCameraView;
       private List mResolutionList;
       private MenuItem[] mEffectMenuItems;
       private SubMenu mColorEffectsMenu;
       private MenuItem[] mResolutionMenuItems;
       private SubMenu mResolutionMenu;

       private static long frameCounter = 0;

       long startTime = 0;
       private Mat edgesMat;
       boolean recording = false;
       private int sampleAudioRateInHz = 44100;
       private int imageWidth = 1280;
       private int imageHeight = 720;
       private int frameRate = 30;
       private Frame yuvImage = null;
       private File ffmpeg_link;
       private FFmpegFrameRecorder recorder;

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


       private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
           @Override
           public void onManagerConnected(int status) {
               switch (status) {
                   case LoaderCallbackInterface.SUCCESS:
                       Log.i(TAG, "OpenCV loaded successfully");
                       mOpenCvCameraView.enableView();
                       mOpenCvCameraView.setOnTouchListener(OpenCVCameraActivity.this);
                   break;
                   default:
                       super.onManagerConnected(status);
                   break;
               }
           }
       };

       @Override
       protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           if(Static.DEBUG) Log.i(TAG, "onCreate()");

           getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

           Thread.setDefaultUncaughtExceptionHandler(uncaughtExceptionHandler);

           try {
               setContentView(R.layout.activity_opencv);

               mOpenCvCameraView = (OpenCVCameraPreview) findViewById(R.id.openCVCameraPreview);
               mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE);
               mOpenCvCameraView.setCvCameraViewListener(this);

               mOpenCvCameraView.enableFpsMeter();

               ffmpeg_link = new File(Environment.getExternalStorageDirectory(), "stream.mp4");
           } catch (Exception e){
               e.printStackTrace();
           }
       }

       private Thread.UncaughtExceptionHandler uncaughtExceptionHandler =
               new Thread.UncaughtExceptionHandler() {
                   public void uncaughtException(Thread thread, Throwable ex) {
                       if(Static.DEBUG) Log.e(TAG, "Uncaught exception", ex);
                   }
               };

       @Override
       protected void onRestart() {
           if (Static.DEBUG) Log.i(TAG, "onRestart()");
           super.onRestart();
       }

       @Override
       protected void onStart() {
           if (Static.DEBUG) Log.i(TAG, "onStart()");
           super.onStart();
       }

       @Override
       protected void onResume() {
           if (Static.DEBUG) Log.i(TAG, "onResume()");
           super.onResume();

           if (!OpenCVLoader.initDebug()) {
               Log.i(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization");
               OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_1_0, this, mLoaderCallback);
           } else {
               Log.i(TAG, "OpenCV library found inside package. Using it!");
               mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
           }

       }

       @Override
       public boolean onCreateOptionsMenu(Menu menu) {
           if (Static.DEBUG) Log.i(TAG, "onCreateOptionsMenu()");
           super.onCreateOptionsMenu(menu);

           List<string> effects = mOpenCvCameraView.getEffectList();

           if (effects == null) {
               Log.e(TAG, "Color effects are not supported by device!");
               return true;
           }

           mColorEffectsMenu = menu.addSubMenu("Color Effect");
           mEffectMenuItems = new MenuItem[effects.size()];

           int idx = 0;
           ListIterator<string> effectItr = effects.listIterator();
           while(effectItr.hasNext()) {
               String element = effectItr.next();
               mEffectMenuItems[idx] = mColorEffectsMenu.add(1, idx, Menu.NONE, element);
               idx++;
           }

           mResolutionMenu = menu.addSubMenu("Resolution");
           mResolutionList = mOpenCvCameraView.getResolutionList();
           mResolutionMenuItems = new MenuItem[mResolutionList.size()];

           ListIterator resolutionItr = mResolutionList.listIterator();
           idx = 0;
           while(resolutionItr.hasNext()) {
               Camera.Size element = resolutionItr.next();
               mResolutionMenuItems[idx] = mResolutionMenu.add(2, idx, Menu.NONE,
                       Integer.valueOf(element.width).toString() + "x" + Integer.valueOf(element.height).toString());
               idx++;
           }

           return true;
       }

       @Override
       protected void onPause() {
           if (Static.DEBUG) Log.i(TAG, "onPause()");
           super.onPause();

           if (mOpenCvCameraView != null)
               mOpenCvCameraView.disableView();

       }

       @Override
       protected void onStop() {
           if (Static.DEBUG) Log.i(TAG, "onStop()");
           super.onStop();
       }

       @Override
       protected void onDestroy() {
           if (Static.DEBUG) Log.i(TAG, "onDestroy()");
           super.onDestroy();

           if (mOpenCvCameraView != null)
               mOpenCvCameraView.disableView();
       }

       public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {

           ++frameCounter;
           //Log.i(TAG, "Frame number: "+frameCounter);

           final Mat rgba = inputFrame.rgba();
           //Core.flip(rgba, rgba, 1);

           /*if(Static.DEBUG) Log.i(TAG,"rgba.total(): "+rgba.total());
           if(Static.DEBUG) Log.i(TAG,"rgba.channels(): " +rgba.channels());*/
           byte[] data = new byte[(int) (rgba.total() * rgba.channels())];
           rgba.get(0, 0, data);
           //if(Static.DEBUG) Log.i(TAG,"return_buff: "+return_buff.length);

           if (audioRecord == null || audioRecord.getRecordingState() != AudioRecord.RECORDSTATE_RECORDING) {
               startTime = System.currentTimeMillis();
               return rgba;
           }

           // get video data
           if (yuvImage != null &amp;&amp; recording) {
               ByteBuffer b = (ByteBuffer)yuvImage.image[0].position(0);
               b.put(data);

               try {
                   long t = 1000 * (System.currentTimeMillis() - startTime);
                   if(Static.DEBUG) Log.i(TAG,"Writing Frame on timestamp: "+t);
                   if (t > recorder.getTimestamp()) {
                       recorder.setTimestamp(t);
                   }
                   recorder.record(yuvImage);
               } catch (FFmpegFrameRecorder.Exception e) {
                   if(Static.DEBUG) Log.i(TAG,e.getMessage());
                   e.printStackTrace();
               }
           }

           return rgba;
       }

       @Override
       public void onCameraViewStarted(int width, int height) {
           edgesMat = new Mat();
       }

       @Override
       public void onCameraViewStopped() {
           if (edgesMat != null)
               edgesMat.release();

           edgesMat = null;
       }

       public boolean onOptionsItemSelected(MenuItem item) {
           Log.i(TAG, "called onOptionsItemSelected; selected item: " + item);
           if (item.getGroupId() == 1)
           {
               mOpenCvCameraView.setEffect((String) item.getTitle());
               Toast.makeText(this, mOpenCvCameraView.getEffect(), Toast.LENGTH_SHORT).show();
           } else if (item.getGroupId() == 2) {
               int id = item.getItemId();
               Camera.Size resolution = mResolutionList.get(id);
               mOpenCvCameraView.setResolution(resolution);
               resolution = mOpenCvCameraView.getResolution();
               String caption = Integer.valueOf(resolution.width).toString() + "x" + Integer.valueOf(resolution.height).toString();
               Toast.makeText(this, caption, Toast.LENGTH_SHORT).show();
           }

           return true;
       }

       @Override
       public boolean onTouch(View v, MotionEvent event) {
           Log.i(TAG,"onTouch event");
           SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
           String currentDateandTime = sdf.format(new Date());
           String fileName = Environment.getExternalStorageDirectory().getPath() +
                   "/sample_picture_" + currentDateandTime + ".jpg";
           mOpenCvCameraView.takePicture(fileName);
           Toast.makeText(this, fileName + " saved", Toast.LENGTH_SHORT).show();
           return false;
       }

       /**
        * Click to ImageButton to start recording.
        */
       public void onClickBtnStartRecord2(View v) {
           if (Static.DEBUG) Log.i(TAG, "onClickBtnStartRecord()");

           if(!recording)
               startRecording();
           else
               stopRecording();
       }

       private void startRecording() {
           if (Static.DEBUG) Log.i(TAG, "startRecording()");
           initRecorder();

           try {
               recorder.start();
               startTime = System.currentTimeMillis();
               recording = true;
               audioThread.start();
               if (Static.DEBUG) Log.i(TAG, "startRecording() success");
           } catch(FFmpegFrameRecorder.Exception e) {
               e.printStackTrace();
           }
       }

       private void stopRecording() {
           if (Static.DEBUG) Log.i(TAG, "stopRecording()");

           runAudioThread = false;
           try {
               audioThread.join();
           } catch(InterruptedException e) {
               e.printStackTrace();
           }
           audioRecordRunnable = null;
           audioThread = null;
           if (Static.DEBUG) Log.i(TAG, "stopRecording() 2");
           if(recorder != null &amp;&amp; recording) {

               recording = false;
               try {
                   recorder.stop();
                   recorder.release();
                   Log.i(TAG, "Finishing recording, calling stop and release on recorder");
               } catch(FFmpegFrameRecorder.Exception e) {
                   e.printStackTrace();
               }
               recorder = null;
           }
       }


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

           Log.i(TAG, "init recorder");
           try {

               if (yuvImage == null) {
                   yuvImage = new Frame(imageWidth, imageHeight, Frame.DEPTH_UBYTE, 4);
                   Log.i(TAG, "create yuvImage");
               }

               Log.i(TAG, "ffmpeg_url: " + ffmpeg_link.getAbsolutePath());
               //Log.i(TAG, "ffmpeg_url: " + ffmpeg_link.exists());
               recorder = new FFmpegFrameRecorder(ffmpeg_link, imageWidth, imageHeight, 1);
               recorder.setFormat("mp4");
               recorder.setSampleRate(sampleAudioRateInHz);
               // Set in the surface changed method
               recorder.setFrameRate(frameRate);

               audioRecordRunnable = new AudioRecordRunnable();
               audioThread = new Thread(audioRecordRunnable);
               runAudioThread = true;
               Log.i(TAG, "recorder initialize success");
           } catch (Exception e){
               e.printStackTrace();
           }
       }

       //---------------------------------------------
       // 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;
               ShortBuffer 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 = ShortBuffer.allocate(bufferSize);

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

               // ffmpeg_audio encoding loop
               while(runAudioThread) {
                   //Log.v(TAG,"recording? " + recording);
                   bufferReadResult = audioRecord.read(audioData.array(), 0, audioData.capacity());
                   audioData.limit(bufferReadResult);
                   if(bufferReadResult > 0) {
                       Log.v(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.recordSamples(audioData);
                                   //Log.v(TAG,"recording " + 1024*i + " to " + 1024*i+1024);
                               } catch(FFmpegFrameRecorder.Exception e) {
                                   Log.v(TAG, e.getMessage());
                                   e.printStackTrace();
                               }
                       }
                   }
               }
               Log.v(TAG, "AudioThread Finished, release audioRecord");

               // encoding finish, release recorder
               if(audioRecord != null) {
                   audioRecord.stop();
                   audioRecord.release();
                   audioRecord = null;
                   Log.v(TAG, "audioRecord released");
               }
           }
       }
    }
    </string></string>

    OpenCVCameraPreview.java :

    import android.content.Context;
    import android.hardware.Camera;
    import android.util.AttributeSet;
    import android.util.Log;

    import org.opencv.android.JavaCameraView;

    import java.io.FileOutputStream;
    import java.util.List;

    public class OpenCVCameraPreview extends JavaCameraView implements Camera.PictureCallback {

       private static final String TAG =  OpenCVCameraPreview.class.getSimpleName();
       private String mPictureFileName;

       public OpenCVCameraPreview(Context context, AttributeSet attrs) {
           super(context, attrs);
       }

       public List<string> getEffectList() {
           return mCamera.getParameters().getSupportedColorEffects();
       }

       public boolean isEffectSupported() {
           return (mCamera.getParameters().getColorEffect() != null);
       }

       public String getEffect() {
           return mCamera.getParameters().getColorEffect();
       }

       public void setEffect(String effect) {
           Camera.Parameters params = mCamera.getParameters();
           params.setColorEffect(effect);
           mCamera.setParameters(params);
       }

       public List getResolutionList() {
           return mCamera.getParameters().getSupportedPreviewSizes();
       }

       public void setResolution(Camera.Size resolution) {
           disconnectCamera();
           mMaxHeight = resolution.height;
           mMaxWidth = resolution.width;
           connectCamera(getWidth(), getHeight());
       }

       public Camera.Size getResolution() {
           return mCamera.getParameters().getPreviewSize();
       }

       public void takePicture(final String fileName) {
           Log.i(TAG, "Taking picture");
           this.mPictureFileName = fileName;
           // Postview and jpeg are sent in the same buffers if the queue is not empty when performing a capture.
           // Clear up buffers to avoid mCamera.takePicture to be stuck because of a memory issue
           mCamera.setPreviewCallback(null);

           // PictureCallback is implemented by the current class
           mCamera.takePicture(null, null, this);
       }

       @Override
       public void onPictureTaken(byte[] data, Camera camera) {
           Log.i(TAG, "Saving a bitmap to file");
           // The camera preview was automatically stopped. Start it again.
           mCamera.startPreview();
           mCamera.setPreviewCallback(this);

           // Write the image in a file (in jpeg format)
           try {
               FileOutputStream fos = new FileOutputStream(mPictureFileName);

               fos.write(data);
               fos.close();

           } catch (java.io.IOException e) {
               Log.e("PictureDemo", "Exception in photoCallback", e);
           }

       }
    }
    </string>

    activity_opencv.xml :

    &lt;?xml version="1.0" encoding="utf-8"?>
    <relativelayout>

       

       &lt;ImageButton<br />
           android:id=&quot;@+id/btnStartRecord2&quot;<br />
           android:layout_width=&quot;70dp&quot;<br />
           android:layout_height=&quot;70dp&quot;<br />
           android:scaleType=&quot;fitXY&quot;<br />
           android:src=&quot;@drawable/record_icon&quot;<br />
           android:background=&quot;@null&quot;<br />
           android:text=&quot;@string/btnStartRecord&quot;<br />
           android:onClick=&quot;onClickBtnStartRecord2&quot;<br />
           android:layout_centerVertical=&quot;true&quot;<br />
           android:layout_alignParentRight=&quot;true&quot;<br />
           android:layout_alignParentEnd=&quot;true&quot;/&gt;


    </relativelayout>

    Overlay views working, but recorded video is without overlay views, and recording with onCameraFrame method is very slow.

  • FFMPEG : How to chose a stream from all stream

    3 mars 2016, par combo_ci

    I try to convert a UDP stream (that genrated from DVB signal) to HLS m3u8 file with this code :

    ffmpeg -i udp://239.1.2.1:60001 -acodec aac -strict -2 -vcodec libx264 -hls_wrap 100 -f hls /var/www/html/ts/1.m3u8

    UDP stream contain 1 channel (in this case IRIB-TV1).

    When i run this code ffmpeg detect all of service and channel that streamed from DVB card with this message :

    Input #0, mpegts, from 'udp://239.1.2.1:60001':
    Duration: N/A, start: 77906.812644, bitrate: N/A
    Program 101
    Metadata:
     service_name    : IRIB-TV1
     service_provider: IRIB
    Stream #0:0[0x3f2]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt470bg), 720x576 [SAR 12:11 DAR 15:11], 25 fps, 50 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x3f3](per): Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltp
    Program 102
    Metadata:
     service_name    : IRIB-TV2
     service_provider: IRIB
    Program 103
    Metadata:
     service_name    : IRIB-TV3
     service_provider: IRIB
    Program 104
    Metadata:
     service_name    : IRIB-TV4
     service_provider: IRIB

    As you see ffmpeg finf 4 channel in UDP stream, But VLC play only channel 1(IRIB-TV1).

    Now i have have 2 question :

    1-Can I get all channel and service via this ffmpeg code ?

    2-Can i choose a spesial stream from this ffmpeg code ?(i know that ffmpeg can choose a stream with -map otion but i want to choose other service_name that in output log)

    output file is :

    ffmpeg version 2.4.3-1ubuntu1~trusty6 Copyright (c) 2000-2014 the FFmpeg developers
     built on Nov 22 2014 17:07:19 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
     configuration: --prefix=/usr --extra-version='1ubuntu1~trusty6' --build-suffix=-ffmpeg --toolchain=hardened --extra-cflags= --extra-cxxflags= --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-fontconfig --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-opengl --enable-x11grab --enable-libxvid --enable-libx265 --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libx264 --enable-libsoxr --enable-openal --enable-libopencv
     libavutil      54.  7.100 / 54.  7.100
     libavcodec     56.  1.100 / 56.  1.100
     libavformat    56.  4.101 / 56.  4.101
     libavdevice    56.  0.100 / 56.  0.100
     libavfilter     5.  1.100 /  5.  1.100
     libavresample   2.  1.  0 /  2.  1.  0
     libswscale      3.  0.100 /  3.  0.100
     libswresample   1.  1.100 /  1.  1.100
     libpostproc    53.  0.100 / 53.  0.100
    Splitting the commandline.
    Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
    Reading option '-timeout' ... matched as AVOption 'timeout' with argument '6000000'.
    Reading option '-i' ... matched as input file with argument 'udp://239.1.2.1:60001?fifo_size=50000'.
    Reading option '-acodec' ... matched as option 'acodec' (force audio codec ('copy' to copy stream)) with argument 'copy'.
    Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'copy'.
    Reading option '-preset' ... matched as AVOption 'preset' with argument 'ultrafast'.
    Reading option '-flags' ... matched as AVOption 'flags' with argument '-global_header'.
    Reading option '-f' ... matched as option 'f' (force format) with argument 'hls'.
    Reading option '-hls_time' ... matched as AVOption 'hls_time' with argument '20'.
    Reading option '-hls_wrap' ... matched as AVOption 'hls_wrap' with argument '5'.
    Reading option '/var/www/html/ts/1.m3u8' ... 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 udp://239.1.2.1:60001?fifo_size=50000.
    Successfully parsed a group of options.
    Opening an input file: udp://239.1.2.1:60001?fifo_size=50000.
    [udp @ 0x1967040] end receive buffer size reported is 131072
    [mpegts @ 0x1977380] Format mpegts probed with size=2048 and score=100
    [mpegts @ 0x1977380] stream=0 stream_type=1b pid=3f2 prog_reg_desc=
    [mpegts @ 0x1977380] stream=1 stream_type=11 pid=3f3 prog_reg_desc=
    [mpegts @ 0x1977380] Before avformat_find_stream_info() pos: 0 bytes read:14476 seeks:0
    [mpegts @ 0x1977380] parser not found for codec none, packets or times may be invalid.
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [mpegts @ 0x1977380] probing stream 1 pp:2500
    [mpegts @ 0x1977380] Probe with size=853, packets=1 detected loas with score=51
    [mpegts @ 0x1977380] probed stream 1
    [aac_latm @ 0x199e4e0] initializing latmctx
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [h264 @ 0x199cc60] Frame num gap 397 393
    [h264 @ 0x199cc60] Frame num gap 397 394
    [h264 @ 0x199cc60] Frame num gap 397 395
    [h264 @ 0x199cc60] mmco: unref short failure
       Last message repeated 1 times
    [h264 @ 0x199cc60] number of reference frames (0+4) exceeds max (3; probably corrupt input), discarding one
    [h264 @ 0x199cc60] no picture ooo
    [h264 @ 0x199cc60] Increasing reorder buffer to 2
    [h264 @ 0x199cc60] no picture ooo
       Last message repeated 1 times
    [h264 @ 0x199cc60] no picture
       Last message repeated 1 times
    [h264 @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
       Last message repeated 3 times
    [mpegts @ 0x1977380] max_analyze_duration 5000000 reached at 5034667 microseconds
    [mpegts @ 0x1977380] After avformat_find_stream_info() pos: 1142476 bytes read:1143604 seeks:0 frames:397
    Input #0, mpegts, from 'udp://239.1.2.1:60001?fifo_size=50000':
     Duration: N/A, start: 43581.024200, bitrate: N/A
     Program 101
       Metadata:
         service_name    : IRIB-TV1
         service_provider: IRIB
       Stream #0:0[0x3f2], 274, 1/90000: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt470bg), 720x576 [SAR 12:11 DAR 15:11], 1/50, 25 fps, 50 tbr, 90k tbn, 50 tbc
       Stream #0:1[0x3f3](per), 123, 1/90000: Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltp
     Program 102
       Metadata:
         service_name    : IRIB-TV2
         service_provider: IRIB
     Program 103
       Metadata:
         service_name    : IRIB-TV3
         service_provider: IRIB
     Program 104
       Metadata:
         service_name    : IRIB-TV4
         service_provider: IRIB
     Program 105
       Metadata:
         service_name    : IRIB-TV5
         service_provider: IRIB
     Program 106
       Metadata:
         service_name    : IRINN
         service_provider: IRIB
     Program 107
       Metadata:
         service_name    : AMOOZESH
         service_provider: IRIB
     Program 108
       Metadata:
         service_name    : QURAN
         service_provider: IRIB
     Program 119
       Metadata:
         service_name    : SALAMAT
         service_provider: IRIB
     Program 120
       Metadata:
         service_name    : NASIM
         service_provider: IRIB
     Program 151
       Metadata:
         service_name    : RADIO IRAN
         service_provider: IRIB
     Program 152
       Metadata:
         service_name    : RADIO PAYAM
         service_provider: IRIB
     Program 153
       Metadata:
         service_name    : RADIO JAVAN
         service_provider: IRIB
     Program 154
       Metadata:
         service_name    : RADIO MAAREF
         service_provider: IRIB
     Program 155
       Metadata:
         service_name    : RADIO QURAN
         service_provider: IRIB
     Program 156
       Metadata:
         service_name    : RADIO FARHANG
         service_provider: IRIB
     Program 157
       Metadata:
         service_name    : RADIO SALAMAT
         service_provider: IRIB
     Program 158
       Metadata:
         service_name    : RADIO VARZESH
         service_provider: IRIB
     Program 159
       Metadata:
         service_name    : RADIO EGHTESAD
         service_provider: IRIB
     Program 160
       Metadata:
         service_name    : RADIO TEHRAN
         service_provider: IRIB
     Program 161
       Metadata:
         service_name    : RADIO AVAA
         service_provider: IRIB
     Program 162
       Metadata:
         service_name    : RADIO NAMAYESH
         service_provider: IRIB
     Program 163
       Metadata:
         service_name    : RADIO SABA
         service_provider: IRIB
     Program 164
       Metadata:
         service_name    : English Radio World Service
         service_provider: IRIB
     Program 166
       Metadata:
         service_name    : Arabic Radio World Service
         service_provider: IRIB
     Program 167
       Metadata:
         service_name    : RADIO BAHARAN
         service_provider: IRIB
     Program 169
       Metadata:
         service_name    : RADIO TELAVAT
         service_provider: IRIB
     Program 170
       Metadata:
         service_name    : RADIO GOFTEGO
         service_provider: IRIB
    Successfully opened the file.
    Parsing a group of options: output file /var/www/html/ts/1.m3u8.
    Applying option acodec (force audio codec ('copy' to copy stream)) with argument copy.
    Applying option vcodec (force video codec ('copy' to copy stream)) with argument copy.
    Applying option f (force format) with argument hls.
    Successfully parsed a group of options.
    Opening an output file: /var/www/html/ts/1.m3u8.
    Successfully opened the file.
    [mpegts @ 0x1967180] Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead.
       Last message repeated 1 times
    [mpegts @ 0x1967180] muxrate VBR, pcr every 2 pkts, sdt every 200, pat/pmt every 40 pkts
    Output #0, hls, to '/var/www/html/ts/1.m3u8':
     Metadata:
       encoder         : Lavf56.4.101
       Stream #0:0, 0, 1/90000: Video: h264 ([27][0][0][0] / 0x001B), yuv420p, 720x576 [SAR 12:11 DAR 15:11], 1/25, q=2-31, 25 fps, 90k tbn, 25 tbc
       Stream #0:1(per), 0, 1/90000: Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, stereo
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
     Stream #0:1 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [AVIOContext @ 0x19a9860] Statistics: 0 seeks, 896 writeouts=N/A    
    [hls @ 0x1a65ca0] EXT-X-MEDIA-SEQUENCE:0
    [AVIOContext @ 0x1d162e0] Statistics: 0 seeks, 1 writeouts
    [AVIOContext @ 0x1966b40] Statistics: 0 seeks, 27 writeouts
    [hls @ 0x1a65ca0] EXT-X-MEDIA-SEQUENCE:0
    [AVIOContext @ 0x199b7a0] Statistics: 0 seeks, 1 writeouts
    frame=  826 fps= 69 q=-1.0 Lsize=N/A time=00:00:20.63 bitrate=N/A    
    video:2611kB audio:68kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    Input file #0 (udp://239.1.2.1:60001?fifo_size=50000):
     Input stream #0:0 (video): 872 packets read (2779202 bytes);
     Input stream #0:1 (audio): 405 packets read (69222 bytes);
     Total: 1277 packets (2848424 bytes) demuxed
    Output file #0 (/var/www/html/ts/1.m3u8):
     Output stream #0:0 (video): 826 packets muxed (2673485 bytes);
     Output stream #0:1 (audio): 405 packets muxed (69222 bytes);
     Total: 1231 packets (2742707 bytes) muxed
    0 frames successfully decoded, 0 decoding errors
    [AVIOContext @ 0x1967ce0] Statistics: 3884832 bytes read, 0 seeks
    Received signal 2: terminating.