Recherche avancée

Médias (3)

Mot : - Tags -/image

Autres articles (64)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

  • 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 (11087)

  • PHP-FFMpeg not converting (error with ffmpeg)

    13 août 2016, par Magurean Dan Sergiu

    I have installed ffmpeg server side with all the dependencies, updated it. And then installed PHP-FFMpeg with Composer. Tested that ffmpeg is instaled with a ssh conexion.

    root@host [/opt/ffmpeg]# ffmpeg
    ffmpeg version N-81322-ge8b355a Copyright (c) 2000-2016 the FFmpeg developers
    built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)
    configuration: --disable-yasm
    libavutil      55. 28.100 / 55. 28.100
    libavcodec     57. 51.100 / 57. 51.100
    libavformat    57. 46.100 / 57. 46.100
    libavdevice    57.  0.102 / 57.  0.102
    libavfilter     6. 51.100 /  6. 51.100
    libswscale      4.  1.100 /  4.  1.100
    libswresample   2.  1.100 /  2.  1.100
    Hyper fast Audio and Video encoder
    usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options]     outfile}...

    Use -h to get full help or, even better, run 'man ffmpeg'

    But when I try to convert a video file with a php script it throws me a very long error.
    PHP Code :

    <?PHP
    include($_SERVER['DOCUMENT_ROOT']."/vendors/install/vendor/autoload.php");
    $ffmpeg = FFMpeg\FFMpeg::create();
    $video = $ffmpeg->open($_SERVER['DOCUMENT_ROOT'].'/resources/uploads/96048/ffd3c5e349fa5745159deef163b5c253.wmv');
    $video
          ->filters()
          ->synchronize();
    $format = new FFMpeg\Format\Video\X264();
    $format->on('progress', function ($video, $format, $percentage) {
       echo "$percentage % transcoded";});
    $video
         ->save($format,$_SERVER['DOCUMENT_ROOT'].'/resources/uploads/96048/ffd3c5e349fa5745159deef163b5c253.mp4');
    ?>

    Error displayed :

    <b>Fatal error</b>:  Uncaught exception 'Alchemy\BinaryDriver\Exception\ExecutionFailureException' with message 'ffmpeg failed to execute command '/usr/local/bin/ffmpeg' '-y' '-i' '/home/user/working/resources/uploads/23097/2efeb41a1a7085a1dbd469c4895ac23e.wmv' '-async' '1' '-metadata:s:v:0' 'start_time=0' '-threads' '12' '-vcodec' 'libx264' '-acodec' 'libfaac' '-b:v' '1000k' '-refs' '6' '-coder' '1' '-sc_threshold' '40' '-flags' '+loop' '-me_range' '16' '-subq' '7' '-i_qfactor' '0.71' '-qcomp' '0.6' '-qdiff' '4' '-trellis' '1' '-b:a' '128k' '-pass' '1' '-passlogfile' '/tmp/ffmpeg-passes57ad320a1b685j794u/pass-57ad320a1b716' '/home/user/working/resources/uploads/23097/2efeb41a1a7085a1dbd469c4895ac23e.mp4'' in /home/user/working/vendors/install/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunner.php:100↵Stack trace:↵#0 /home/user/working/vendors/install/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunner.php(72): Alchemy\BinaryDriver\ProcessRunner-&amp;gt;doExecutionFailure(''/usr/bin/ffmpe...')↵#1 / in <b>/home/user/working/vendors/install/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Media/Video.php</b> on line <b>168</b><br />↵"

    Then I have took the basic code displayed upwards and ran it directly through ssh.

    '/usr/local/bin/ffmpeg' '-y' '-i' '/home/user/working/resources/uploads/23097/2efeb41a1a7085a1dbd469c4895ac23e.wmv' '-async' '1' '-metadata:s:v:0' 'start_time=0' '-threads' '12' '-vcodec' 'libx264' '-acodec' 'libfaac' '-b:v' '1000k' '-refs' '6' '-coder' '1' '-sc_threshold' '40' '-flags' '+loop' '-me_range' '16' '-subq' '7' '-i_qfactor' '0.71' '-qcomp' '0.6' '-qdiff' '4' '-trellis' '1' '-b:a' '128k' '-pass' '1' '-passlogfile' '/tmp/ffmpeg-passes57ad320a1b685j794u/pass-57ad320a1b716' '/home/user/working/resources/uploads/23097/2efeb41a1a7085a1dbd469c4895ac23e.mp4'

    And this is the response I get :

    ffmpeg version N-81322-ge8b355a Copyright (c) 2000-2016 the FFmpeg developers
     built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)
     configuration: --disable-yasm
     libavutil      55. 28.100 / 55. 28.100
     libavcodec     57. 51.100 / 57. 51.100
     libavformat    57. 46.100 / 57. 46.100
     libavdevice    57.  0.102 / 57.  0.102
     libavfilter     6. 51.100 /  6. 51.100
     libswscale      4.  1.100 /  4.  1.100
     libswresample   2.  1.100 /  2.  1.100
    Guessed Channel Layout for Input Stream #0.0 : stereo
    Input #0, asf, from '/home/user/working/resources/uploads/23097/2efeb41a1a7085a1dbd469c4895ac23e.wmv':
     Metadata:
       SfOriginalFPS   : 299700
       WMFSDKVersion   : 11.0.6001.7000
       WMFSDKNeeded    : 0.0.0.0000
       comment         : Footage: Small World Productions, Inc; Tourism New Zealand | Producer: Gary F. Spradling | Music: Steve Ball
       title           : Wildlife in HD
       copyright       : © 2008 Microsoft Corporation
       IsVBR           : 0
       DeviceConformanceTemplate: AP@L3
     Duration: 00:00:30.09, start: 0.000000, bitrate: 6977 kb/s
       Stream #0:0(eng): Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 2 channels, fltp, 192 kb/s
       Stream #0:1(eng): Video: vc1 (Advanced) (WVC1 / 0x31435657), yuv420p, 1280x720, 5942 kb/s, 29.97 fps, 29.97 tbr, 1k tbn, 1k tbc
    Unknown encoder 'libx264'

    My question is what to do next ? I have wasted 3 days to make this work and this is the furthest I have come. How can I test if libx264 is installed corectly ? And if it is not installed corectly how cand I reinstal or make it work ?

  • ffmpeg extracting frames from video

    22 novembre 2017, par TheOtherguyz4kj

    I am using Writingminds FFmpeg to use FFmpeg with Android. I am currently trying to extract frames from a video.

    I would like to extract 8 frames from the video evenly distributed throughout the video. I found this tutorial here is my implementation of it.

    MediaMetadataRetriever retriever = new MediaMetadataRetriever();
       retriever.setDataSource(videoCroppedFile.getAbsolutePath());
       String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
       Long videoLength = Long.parseLong(time);


    final String cmd[] = {

               "-i",
               videoCroppedFile.getAbsolutePath(),
               "-f",
               "image2",
               "-ss",
               String.valueOf(videoLength.intValue() / ((8 + 1) * 10)),
               "-r",
               String.valueOf((8 + 1) / videoLength.intValue()),
               mediaStorageDir.getAbsolutePath() + "/%d.jpg"
       };

    However, when i go to the folder where the frames should be saved there isn’t anything there. Also there are no error messages.

    I feel like its a way this library takes the String parameters. I’ve been stuck on this for sometime I have tried lots of different versions of the cmd. I was hoping someone could help.

    Here is my output from ffmpeg :

    1-22 19:33:14.904 30981-30981/com.firebase.android D/videoFrames:  failure reason ffmpeg version n3.0.1 Copyright (c) 2000-2016 the FFmpeg developers
            built with gcc 4.8 (GCC)
            configuration: --target-os=linux --cross-prefix=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/home/vagrant/SourceCode/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/vagrant/SourceCode/ffmpeg-android/build/armeabi-v7a --extra-cflags='-I/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all' --extra-ldflags='-L/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags=
            libavutil      55. 17.103 / 55. 17.103
            libavcodec     57. 24.102 / 57. 24.102
            libavformat    57. 25.100 / 57. 25.100
            libavdevice    57.  0.101 / 57.  0.101
            libavfilter     6. 31.100 /  6. 31.100
            libswscale      4.  0.100 /  4.  0.100
            libswresample   2.  0.101 /  2.  0.101
            libpostproc    54.  0.100 / 54.  0.100
          Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/data/user/0/com.firebase.android/cache/videovgntp6q5ar4dglkaflaoobfpcv945824159.mp4':
            Metadata:
              major_brand     : isom
              minor_version   : 512
              compatible_brands: isomiso2avc1mp41
              encoder         : Lavf57.25.100
            Duration: 00:00:08.28, start: 0.000000, bitrate: 391 kb/s
              Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 720x764 [SAR 1:1 DAR 180:191], 132 kb/s, 16.67 fps, 16.67 tbr, 12800 tbn, 33.33 tbc (default)
              Metadata:
                handler_name    : VideoHandler
              Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
              Metadata:
                handler_name    : SoundHandler
          Invalid framerate value: 0

    Update 2

    Here is my Android code :

         try {
           ffmpeg.loadBinary(new LoadBinaryResponseHandler() {

               @Override
               public void onStart() {
                   Log.d("videoFrames", "starting to load binary");
               }

               @Override
               public void onFailure() {
                   Log.d("videoFrames", "failed to load binary");
               }

               @Override
               public void onSuccess() {
                   Log.d("videoFrames", "loaded binary");
                   try {
                       ffmpeg.execute(cmd, new ExecuteBinaryResponseHandler() {

                           @Override
                           public void onStart() {
                               Log.d("videoFrames", " starting to get frames from video");
                               if (mediaStorageDir.isDirectory() &amp;&amp; mediaStorageDir.list().length > 0) {
                                   String[] children = mediaStorageDir.list();
                                   for (int i = 0; i &lt; children.length; i++) {
                                       new File(mediaStorageDir, children[i]).delete();
                                   }
                               }
                           }

                           @Override
                           public void onProgress(String message) {
                               Log.d("videoFrames", " progress getting frames from video");
                           }

                           @Override
                           public void onFailure(String message) {
                               Log.d("videoFrames", " failed to get frames from video");
                               Log.d("videoFrames", " failure reason " + message);
                               Log.d("videoFrames", " ----------------------------------------------- ");
                           }

                           @Override
                           public void onSuccess(String message) {
                               Log.d("videoFrames", " success getting frames from video");
                           }

                           @Override
                           public void onFinish() {
                               Log.d("videoFrames", " finished getting frames from video");
                           }
                       });
                   } catch (FFmpegCommandAlreadyRunningException e) {
                       Log.d("videoFrames", " command already running in fmpeg");
                       e.printStackTrace();
                   }
               }

               @Override
               public void onFinish() {}
           });
       } catch (FFmpegNotSupportedException e) {
           // Handle if FFmpeg is not supported by device
       }

    Update 3

    I fixed my code by doing :

    final String cmd[] = {

               "-i",
               videoCroppedFile.getAbsolutePath(),
               "-f",
               "image2",
               "-ss",
               String.valueOf(videoLength.floatValue() / (8.0  * 10.0)),
               "-r",
               String.valueOf(8.0 / videoLength.floatValue()),
               mediaStorageDir.getAbsolutePath() + "/%d.jpg"
       };
  • Why does FFMPEG report the wrong duration ?

    7 janvier 2020, par Adrian Lynch

    I have an oldish build of FFmpeg that I can’t easily change.

    We use FFmpeg to find the duration of video and sound files. So far it has been working wonderfully.

    Recently on an uploaded file, FFmpeg has reported a 30 second file as being 5 minutes 30 seconds in length.

    Could it be something wrong with the file rather than FFmpeg ?

    If I use FFmpeg to convert to another file, the duration is restored.

    In case it matters, ffmpeg -i ’path to the file’ produces :

    FFmpeg version Sherpya-r15618, Copyright (c) 2000-2008 Fabrice Bellard, et al.
      libavutil     49.11. 0 / 49.11. 0
      libavcodec    52. 0. 0 / 52. 0. 0
      libavformat   52.22. 1 / 52.22. 1
      libavdevice   52. 1. 0 / 52. 1. 0
      libswscale     0. 6. 1 /  0. 6. 1
      libpostproc   51. 2. 0 / 51. 2. 0
      built on Oct 14 2008 23:43:47, gcc : 4.2.5 20080919 (prerelease) [Sherpya]
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from ’H :\path\to\file.mov’ :
      Duration : 00:05:35.00, start : 0.000000, bitrate : 1223 kb/s
        Stream #0.0(eng) : Audio : aac, 44100 Hz, stereo, s16
        Stream #0.1(eng) : Video : h264, yuv420p, 720x576, 25.00 tb(r)
    Must supply at least one output file
    

    It’s that very command I use to then extract the duration with RegEx.

    Does anyone have a nice application that can do what I’m trying above but get it right 100% of the time ?