Recherche avancée

Médias (91)

Autres articles (75)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

Sur d’autres sites (7363)

  • Creating thumbnails with FFmpeg

    3 janvier 2012, par Calin-Andrei Burloiu

    I am using FFmpeg to extract thumbnails from specific positions of video files.

    I found on the web two approaches to do this :

    1. With -ss (seek) parameter before -i (input) parameter :

      ffmpeg -y -ss $SEEK_POINT -i input.ogv -vcodec mjpeg -vframes 1 -an -s 120x90 -f rawvideo output.jpg

    2. With -ss (seek) parameter after -i (input) parameter :

      ffmpeg -y -i input.ogv -vcodec mjpeg -ss $SEEK_POINT -vframes 1 -an -s 120x90 -f rawvideo output.jpg

    The first method generates a bad thumbnail with gray spots, but works very fast. The error returned is [theora @ 0x8097240] vp3: first frame not a keyframe.

    The second method always works but show an error which cause the extraction to take a lot of time. This amount of time is not fixed and it depends on the seek point as I noticed. Sometimes it takes a few seconds and other times several minutes to extract a thumbnail. I get the error Buffering several frames is not supported. Please consume all available frames before adding a new one. in the following output :

    Input #0, ogg, from 'input.ogv':
     Duration: 00:21:52.76, start: 0.000000, bitrate: 844 kb/s
       Stream #0.0: Video: theora, yuv420p, 800x600 [PAR 4:3 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 25 tbc
       Stream #0.1: Audio: vorbis, 44100 Hz, stereo, s16, 192 kb/s
       Metadata:
         ENCODER         : Lavf52.102.0
    Incompatible pixel format 'yuv420p' for codec 'mjpeg', auto-selecting format 'yuvj420p'                                                                        
    [buffer @ 0x9250840] w:800 h:600 pixfmt:yuv420p                                
    [scale @ 0x92508a0] w:800 h:600 fmt:yuv420p -> w:120 h:90 fmt:yuvj420p flags:0x4
    Output #0, rawvideo, to 'output.jpg':
     Metadata:
       encoder         : Lavf53.2.0
       Stream #0.0: Video: mjpeg, yuvj420p, 120x90 [PAR 4:3 DAR 16:9], q=2-31, 200 kb/s, 90k tbn, 25 tbc
    Stream mapping:
     Stream #0.0 -> #0.0
    Press ctrl-c to stop encoding
    [buffer @ 0x9250840] Buffering several frames is not supported. Please consume all available frames before adding a new one.                                    
    frame=    0 fps=  0 q=0.0 size=       0kB time=10000000000.00 bitrate=   0.0kbit
    Last message repeated 15448 times
    frame=    1 fps=  0 q=3.4 Lsize=       3kB time=0.04 bitrate= 598.8kbits/s    
    video:3kB audio:0kB global headers:0kB muxing overhead 0.000000%

    How can I extract thumbnails without any problems using FFmpeg from a custom position of a video regardless of the input format ?

  • How can I use FFMpeg to convert videos saved in gallery to mp4 no matter what extension is chose ?

    7 juin 2014, par user3587194
    Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
    intent.setType("video/*");
    startActivityForResult(intent, VIDEO_SELECTED_GALLERY);
              }
          }, expires);
       }
    });

    sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" +Environment.getExternalStorageDirectory())));

    Here is my OnActivityResults this is after the Intent happens when i choose a video from the selected gallery. Im trying to implement in FFMpeg command during the onActivityResult so i can be able to convert all video files to mp4 when choosing a video from the gallery

    else if (requestCode == VIDEO_SELECTED_GALLERY) {      

            if (resultCode == RESULT_OK) {

                try {

                    selectedVideo = intent.getData();

                    if (selectedVideo != null) {

                        try {

                            String[] filePathColumn = {

                                    MediaStore.Video.VideoColumns.DATA,

                                    MediaStore.Video.VideoColumns.SIZE,

                                    MediaStore.Video.VideoColumns.DURATION,

                                    MediaStore.Video.VideoColumns.MIME_TYPE

                            };

                           Cursor cursor = getContentResolver().query(selectedVideo, filePathColumn, null, null, null);

                           cursor.moveToFirst();

                           int columnIndex0 = cursor.getColumnIndex(filePathColumn[0]);

                           int columnIndex1 = cursor.getColumnIndex(filePathColumn[1]);

                           int columnIndex2 = cursor.getColumnIndex(filePathColumn[2]);

                           int columnIndex3 = cursor.getColumnIndex(filePathColumn[3]);

                            if (cursor.getString(columnIndex3) != null && cursor.getString(columnIndex3).compareTo("")!=0 && cursor.getString(columnIndex3).contains("wmv")) {

                                displayErrorAlert("Upload Alert", "You cannot upload .wmv format videos. Sorry, that file format is not supported at this time");

                            }

                            else {

                                float lduration = 0.0f;

                                String lpath = "";

                                if(cursor.getString(columnIndex1) != null && cursor.getString(columnIndex1).compareTo("")!=0) {

                                    lsize  = Long.parseLong(cursor.getString(columnIndex1));

                                    size_of_file = lsize;

                                }

                                if (cursor.getString(columnIndex2) != null && cursor.getString(columnIndex2).compareTo("")!=0) {

                                    lduration = Float.parseFloat(cursor.getString(columnIndex2));

                                }

                                if(cursor.getString(columnIndex0) != null && cursor.getString(columnIndex0).compareTo("")!= 0) {

                                    lpath = cursor.getString(columnIndex0);

                                    lduration = lduration / 1000;

                                    if (lduration > 31.00) {

                                        displayErrorAlert("Time Limit", "Duration of video is more than 30 seconds");

                                    }

                                    else {

                                        path = lpath;

                                        getVideoFileSize();

                                        if (lsize > 26214400 && lsize < FILE_SIZE) {

                                            AlertDialog.Builder confirm = new AlertDialog.Builder(this);

                                            confirm.setTitle("Warning: Long Upload Time");

                                            confirm.setMessage("This video is larger than 25MB. Uploading may take more than 5 minutes, depending on your internet speed.");

                                            confirm.setPositiveButton("Yes", new DialogInterface.OnClickListener() {

                                                @Override
                                                public void onClick (DialogInterface dialog, int which) {

                                                    if (mConnectionDetector.isConnectedToInternet()) {
                                                        // TODO Auto-generated method

                                                        new S3PutObjectTask(VideoPlay.this, s3Client, code, path, size_of_file, securityCode).execute();

                                                    }

                                                    else {

                                                        mTosty.showToast(getResources().getString(R.string.internetIssue));

                                                    }

                                                }

                                            });

                                            confirm.setNegativeButton("No", new DialogInterface.OnClickListener() {

                                                public void onClick (DialogInterface dialog, int which) {

                                                    dialog.dismiss();

                                                }

                                            });

                                            confirm.show().show();

                                        }

                                        else {

                                            if (mConnectionDetector.isConnectedToInternet()) {

                                                new S3PutObjectTask(VideoPlay.this, s3Client, code, path, size_of_file, securityCode).execute();

                                            }

                                            else {

                                                mTosty.showToast(getResources().getString(R.string.internetIssue));

                                            }

                                        }

                                    }

                                }

                                else {

                                    if (lsize > FILE_SIZE) {

                                        displayErrorAlert("File Size Too Big", "You can not download greater than 50mb.");                                                                

                                    }

                                    else if (lsize > 26214400 && lsize < FILE_SIZE) {

                                        AlertDialog.Builder confirm = new AlertDialog.Builder(this);

                                        confirm.setTitle("Warning: Long Download Time");

                                        confirm.setMessage("This video is larger than 25MB. Downloading may take more than 5 minutes, depending on your internet speed.");

                                        confirm.setPositiveButton("Yes", new DialogInterface.OnClickListener() {

                                            @Override
                                            public void onClick(DialogInterface dialog, int which) {

                                                VideoDownloaderTaskForAlbum mTask =new VideoDownloaderTaskForAlbum(VideoPlay.this,VideoPlay.this,lsize,selectedVideo);

                                                mTask.execute(selectedVideo);

                                                dialog.dismiss();

                                            }

                                        });

                                        confirm.setNegativeButton("No", new DialogInterface.OnClickListener() {

                                            public void onClick(DialogInterface dialog, int which) {

                                                dialog.dismiss();

                                            }

                                        });

                                        confirm.show().show();

                                    }

                                    else {

                                        VideoDownloaderTaskForAlbum mTask =new VideoDownloaderTaskForAlbum(VideoPlay.this,VideoPlay.this,lsize,selectedVideo);

                                        mTask.execute(selectedVideo);  

                                    }                              

                                }

                            }

                        }

                        catch(Exception e) {

                            e.printStackTrace();

                        }

                    }

                    else {

                        displayErrorAlert("Wrong File", "Wrong file Path");

                    }

                }

                catch (Exception e) {

                    Log.i("tag", e.getMessage());

                }

            } else if (resultCode == RESULT_CANCELED) {

                mTosty.showToast("Result Canceled");

            }

        }

    }
  • Use sox to combine audios

    7 septembre 2012, par user1622115

    I have three 3gp file,and I use sox to combine them

    sox --combine sequence C:\1.3gp C:\2.3gp C:\3.3gp C:\newaudio.3gp

    but It's show that "FAIL formats:no handler for file extension 3gp"

    Its means that I have to install some extension ?

    I'm trying to do it with sox,Can anybody give me any suggestions ?

    Or It's possible do it with ffmpeg ?