Recherche avancée

Médias (1)

Mot : - Tags -/censure

Autres articles (56)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • HTML5 audio and video support

    13 avril 2011, par

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

  • MediaSPIP v0.2

    21 juin 2013, par

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

Sur d’autres sites (11153)

  • Stop JavaCV playback warning

    18 janvier 2018, par Chaoslab

    Problem :
    Receiving a stream of command line warnings as video plays - deprecated pixel format used, make sure you did set range correctly

    Question :
    How can I stop the warnings from happening or being displayed ?

    Update - Fixed :
    The solution was too override the logging callback and don’t do anything in the logging call method. FFmpeg logging is then disabled.

    The reason for the message from FFmpeg is because it is grabbing frames from an old video format so is unavoidable if playing older videos.

    NOTE :
    This solution completely disables all output from FFmpeg. Even FFmpeg errors are muted.

    Code below (just frame grabbing, not timed playback).

    package test.javacv;

    import java.io.File;

    import org.bytedeco.javacv.CanvasFrame;
    import org.bytedeco.javacv.FFmpegFrameGrabber;
    import org.bytedeco.javacv.Frame;

    import org.bytedeco.javacv.CustomLogCallback;

    public class TestPlay implements Runnable {
    private static String      video_loc = null;
    private static CanvasFrame canvas    = new CanvasFrame("Test JavaCV player");

    public static void main(String[] args) { new Thread(new TestPlay(args[0])).start(); }

    static {
     CustomLogCallback.set();
    }

    public void run() { play_video(video_loc); }

    public TestPlay(String loc) {
     video_loc = loc;
     canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
    }

    public static final void play_video(String vid_loc) {
     try {
      File               file      = new File(vid_loc);
      FFmpegFrameGrabber ffmpeg_fg = new FFmpegFrameGrabber(file.getAbsolutePath());
      Frame              frm;
      ffmpeg_fg.setAudioChannels(0);
      ffmpeg_fg.start();
      for(;;)
       if((frm = ffmpeg_fg.grab()) != null) canvas.showImage(frm);
       else {
        ffmpeg_fg.setTimestamp(0);
        break;
       }
      ffmpeg_fg.stop();
     } catch(Exception ex) { ex("play_video vid_loc:" + vid_loc, ex); }
    }

    public static final void ex(String txt, Exception ex)   {
     System.out.println("EXCEPTION: " + txt + " stack..."); ex.printStackTrace(System.out); }
    }

    Logging class

    // custom logger to override all logging output
    package org.bytedeco.javacv;

    import org.bytedeco.javacpp.BytePointer;

    import static org.bytedeco.javacpp.avutil.LogCallback;
    import static org.bytedeco.javacpp.avutil.setLogCallback;

    public class CustomLogCallback extends LogCallback {

    static final CustomLogCallback instance = new CustomLogCallback();

    public static CustomLogCallback getInstance() { return instance; }

    public static void set() { setLogCallback(getInstance()); }

    @Override
    public void call(int level, BytePointer msg) {}
    }
  • Ffmpeg - Concat two video file - Defining absolute path of video file not working

    9 juillet 2014, par Ghanshyam Dobariya

    I am using Ffmpeg to concate three mp4 files.

    I am following this article
    https://trac.ffmpeg.org/wiki/How%20to%20concatenate%20(join,%20merge)%20media%20files

    Check topic Concat protocol

    I have 3 .ts files, now running following command that merges all 3 .ts files properly

    ffmpeg -i "concat:video1.ts|video2.ts|video3.ts" -c copy -bsf:a aac_adtstoasc output.mp4

    Now same command I want to run from php code, so I am giving absolute path of each file, and the command is as below.

    /home/pc-16/bin/ffmpeg -i "concat:|'/var/temp/rt-web/web/video/iRec/HOKPINzHFS/video1.ts'|'/var/temp/rt-web/web/video/iRec/HOKPINzHFS/video2.ts'|'/var/temp/rt-web/web/video/iRec/HOKPINzHFS/video3.ts'" -c copy -bsf:a aac_adtstoasc "/var/temp/rt-web/web/video/iRec/HOKPINzHFS/final.mp4"

    This gives following error

    concat:|'/var/temp/rt-web/web/video/iRec/HOKPINzHFS/video1.ts'|'/var/temp/rt-web/web/video/iRec/HOKPINzHFS/video2.ts'|'/var/temp/rt-web/web/video/iRec/HOKPINzHFS/video3.ts': No such file or directory

    Have also tried the same command by removing single quotes from file names

    /home/pc-16/bin/ffmpeg -i "concat:|/var/temp/rt-web/web/video/iRec/HOKPINzHFS/video1.ts|/var/temp/rt-web/web/video/iRec/HOKPINzHFS/video2.ts|/var/temp/rt-web/web/video/iRec/HOKPINzHFS/video3.ts" -c copy -bsf:a aac_adtstoasc "/var/temp/rt-web/web/video/iRec/HOKPINzHFS/final.mp4"

    but got the same error message.

    Can anybody tell me how to specify absolute file names in command.

  • IplImage crop and rotate - Android

    26 février 2015, par Ganesh

    I’m using ffmpeg to video capture for 30 seconds.

    @Override
           public void onPreviewFrame(byte[] data, Camera camera) {
               if (yuvIplimage != null && recording && rec)
                   {
                       new SaveFrame().execute(data);
                   }
               }
           }

    save frame class is below

    private class SaveFrame extends AsyncTask {
               long t;
               protected File doInBackground(byte[]... arg) {

                   t = 1000 * (System.currentTimeMillis() - firstTime - pausedTime);
                   toSaveFrames++;
                   File pathCache = new File(Environment.getExternalStorageDirectory()+"/DCIM", (System.currentTimeMillis() / 1000L)+ "_" + toSaveFrames + ".tmp");
                   BufferedOutputStream bos;
                   try {
                       bos = new BufferedOutputStream(new FileOutputStream(pathCache));
                       bos.write(arg[0]);
                       bos.flush();
                       bos.close();
                   } catch (FileNotFoundException e) {
                       e.printStackTrace();
                       pathCache = null;
                       toSaveFrames--;
                   } catch (IOException e) {
                       e.printStackTrace();
                       pathCache = null;
                       toSaveFrames--;
                   }
                   return pathCache;


               }
               @Override
               protected void onPostExecute(File filename)
               {
                   if(filename!=null)
                   {
                       savedFrames++;
                       tempList.add(new FileFrame(t,filename));
                   }
               }
           }

    finally i add all frames with crop and rotation

    private class AddFrame extends AsyncTask {
           private int serial = 0;
           @Override
           protected Void doInBackground(Void... params) {

               for(int i=0; i/                                      final int startY = 640*(480-480)/2;
    //                                      final int lenY = 640*480;
    //                                      yuvIplimage.getByteBuffer().put(bytes, startY, lenY);
    //                                      final int startVU = 640*480+ 640*(480-480)/4;
    //                                      final int lenVU = 640* 480/2;
    //                                      yuvIplimage.getByteBuffer().put(bytes, startVU, lenVU);

                       if (tempList.get(i).time > recorder.getTimestamp()) {
                           recorder.setTimestamp(tempList.get(i).time);
                       }

                       image = cropImage(image);
                       image = rotate(image, 270);
    //                                       image = rotateImage(image);
                       recorder.record(image);
                       Log.i(LOG_TAG, "record " + i);
                       image = null;
                       serial++;
                       publishProgress(serial);
                   } catch (FileNotFoundException e) {
                       e.printStackTrace();
                   } catch (IOException e) {
                       e.printStackTrace();
                   } catch (com.googlecode.javacv.FrameRecorder.Exception e) {
                       e.printStackTrace();
                   }
               }
               return null;
           }
           @Override
           protected void onProgressUpdate(Integer... serial) {
               int value = serial[0];
               creatingProgress.setProgress(value);
           }
           @Override
           protected void onPostExecute(Void v)
           {
               creatingProgress.dismiss();
               if (recorder != null && recording) {
                   recording = false;
                   Log.v(LOG_TAG,"Finishing recording, calling stop and release on recorder");
                   try {
                       recorder.stop();
                       recorder.release();
                       finish();
                       startActivity(new Intent(RecordActivity.this,AnswerViewActivity.class));
                   } catch (FFmpegFrameRecorder.Exception e) {
                       e.printStackTrace();
                   }
                   recorder = null;
               }
           }
       }

    my crop and rotate method are below

    private IplImage cropImage(IplImage src)
       {
           cvSetImageROI(src, r);
           IplImage cropped = IplImage.create(imageHeight, imageHeight, IPL_DEPTH_8U, 2);
           cvCopy(src, cropped);
           return cropped;
       }

       public static IplImage rotate(IplImage image, double angle) {        
           IplImage copy = opencv_core.cvCloneImage(image);

           IplImage rotatedImage = opencv_core.cvCreateImage(opencv_core.cvGetSize(copy), copy.depth(), copy.nChannels());
           CvMat mapMatrix = opencv_core.cvCreateMat( 2, 3, opencv_core.CV_32FC1 );

           //Define Mid Point
           CvPoint2D32f centerPoint = new CvPoint2D32f();
           centerPoint.x(copy.width()/2);
           centerPoint.y(copy.height()/2);

           //Get Rotational Matrix
           opencv_imgproc.cv2DRotationMatrix(centerPoint, angle, 1.0, mapMatrix);

           //Rotate the Image
           opencv_imgproc.cvWarpAffine(copy, rotatedImage, mapMatrix, opencv_imgproc.CV_INTER_CUBIC +  opencv_imgproc.CV_WARP_FILL_OUTLIERS, opencv_core.cvScalarAll(170));
           opencv_core.cvReleaseImage(copy);
           opencv_core.cvReleaseMat(mapMatrix);        
           return rotatedImage;
       }

    my final video crop and rotate but green frames and colored frames mixed with this.

    How to fix this problem. I’m not aware of iplimage. In some blogs they mention its YUV format. first u need to convert Y and then convert UV.

    How to solve this problem ?