Recherche avancée

Médias (1)

Mot : - Tags -/belgique

Autres articles (60)

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • (Dés)Activation de fonctionnalités (plugins)

    18 février 2011, par

    Pour gérer l’ajout et la suppression de fonctionnalités supplémentaires (ou plugins), MediaSPIP utilise à partir de la version 0.2 SVP.
    SVP permet l’activation facile de plugins depuis l’espace de configuration de MediaSPIP.
    Pour y accéder, il suffit de se rendre dans l’espace de configuration puis de se rendre sur la page "Gestion des plugins".
    MediaSPIP est fourni par défaut avec l’ensemble des plugins dits "compatibles", ils ont été testés et intégrés afin de fonctionner parfaitement avec chaque (...)

Sur d’autres sites (11487)

  • 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 ?