Recherche avancée

Médias (2)

Mot : - Tags -/doc2img

Autres articles (39)

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

  • Contribute to a better visual interface

    13 avril 2011

    MediaSPIP is based on a system of themes and templates. Templates define the placement of information on the page, and can be adapted to a wide range of uses. Themes define the overall graphic appearance of the site.
    Anyone can submit a new graphic theme or template and make it available to the MediaSPIP community.

  • Supporting all media types

    13 avril 2011, par

    Unlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)

Sur d’autres sites (7113)

  • Streaming android to windows

    13 juin 2017, par iYehuda

    I’m writing an app that enables controlling android devices from windows machines.
    Major part of controlling the device is viewing it’s screen. Currently, my android app (Java code) captures the screen on a fixed rate, compresses it (JPEG) and sends it, while the windows side (C# code) receives buffers of data, each for frame, decompresses them and displays the last decompressed frame.

    Two issues came up from this solution :

    1. Compression of a single image takes 0.3 seconds, which limits me to low FPS streaming with single thread for compressing. I made a thread pool for compressing captured frames, and it damages the app performance.

    2. The compression is not optimal. The screen can be idle for a while and a continuous transmission of the same frame would be done. Usage of streaming/encoding format would be handful and can ease the network traffic.

    I searched for encoding APIs such as MediaCodec and third party libraries such as ffmpeg. All those libraries encode videos and write them to files (maybe I misunderstood them ?).

    What API can I use for streaming my screen and follow these requirements :

    • Fast encoding / non blocking API
    • Outputs raw binary data for each frame. The data must be sent immediately
    • Can be embedded into my existing applicative protocol (protocol buffers based)
    • Available on C# (Windows) and Java or C++ (Android)
  • laravel 5.6 | upload video - Unable to probe

    23 février 2018, par syehbi herbian

    I was try to upload multiple video and i will get duration and frame with laravel-ffmpeg, so here’s my Controller :

    public function doCreate($lessonsid)
     {
         if (empty(Session::get('contribID'))) {
           return redirect('contributor/login');
         }
       # code...
       // validate
       // read more on validation at http://laravel.com/docs/validation
       $rules = array(
         'judul'          => 'required',
       //   'video.*'  => 'mimes:mp4,mov,ogg,webm |required|max:100000',
       //   'image.*' => 'mimes:jpeg,jpg,png,gif|required|max:30000'
       );
       $validator = Validator::make(Input::all(), $rules);

       // process the login
       if ($validator->fails()) {
           return redirect()->back()->withErrors($validator)->withInput();
       } else {

           $now          = new DateTime();
           $cid          = Session::get('contribID');
           $title        = Input::get('judul');
           $image_video = Input::file('image');
           $lessons_video = Input::file('video');
           // dd($lessons_video);


           $description  = Input::get('desc');

           $video=Video::where('lessons_id',$lessonsid)->get();
           $count_video=count($video);


           if (!is_dir("assets/source/lessons/lessons-$lessonsid")) {
                   $newforder=mkdir("assets/source/lessons/lessons-".$lessonsid);
           }

           $i=$count_video + 1;
           foreach ($title as $key => $titles) {
                   $type_video =$lessons_video[$key]->getMimeType();

                   if (!is_dir("assets/source/lessons/lessons-".$lessonsid."/video-".$i)) {
                           $newforder=mkdir("assets/source/lessons/lessons-".$lessonsid."/video-".$i);
                   }
                   $DestinationPath= 'assets/source/lessons/lessons-'.$lessonsid.'/video-'.$i;
                   //insert image
                   if(!empty($image_video[$key])){
                       $imagefilename    = $image_video[$key]->getClientOriginalName();
                       $image_video[$key]->move($DestinationPath, $imagefilename);
                   }else{
                       $imagefilename    = '';
                   }
                   if($imagefilename ==''){
                       $url_image= $imagefilename;
                   }else{
                       $urls=url('');
                       $url_image= $urls.'/assets/source/lessons/video-'.$i.'/'.$imagefilename;
                   }

                   //insert video
                   if(!empty($lessons_video[$key])){
                       $lessonsfilename    = $lessons_video[$key]->getClientOriginalName();
                       $lessons_video[$key]->move($DestinationPath, $lessonsfilename);
                   }else{
                       $lessonsfilename    = '';
                   }
                   if($lessonsfilename ==''){
                       $url_video= $lessonsfilename;
                   }else{
                       $urls=url('');
                       $url_video= $urls.'/assets/source/lessons/video-'.$i.'/'.$lessonsfilename;
                   }
                   $media = FFMpeg::open($url_video);
                   $frame = $media->getFrameFromString('00:00:13.37');
                   dd($lessonsfilename);    



                   $store                  = new Video;
                   $store->lessons_id      = $lessonsid;
                   $store->title           = $titles;
                   $store->image           = $url_image;
                   $store->video           = $url_video;
                   $store->description     = $description[$key];
                   $store->type_video      = $type_video;
                   $store->durasi          = 0;
                   $store->created_at      = $now;
                   $store->enable=1;
                   $store->save();
                   if($store){
                       // $media = FFMpeg::open($store->video);
                       // // $frame = FFMpeg::open($link)
                       // //         ->getFrameFromSeconds(10)
                       // //         ->export()
                       // //         ->toDisk('public')
                       // //         ->save($filename.'.png');
                       // // dd($frame);
                       // $durationInSeconds = $media->getDurationInSeconds();
                       // dd($media);

                   }
           $i++;
           }

           // Session::set('lessons_title',$title);
           // Session::set('lessons_category_id',$category_id);
           // Session::set('lessons_image',$image);
           // Session::set('lessons_description',$description);

           return redirect('contributor/lessons/'.$lessonsid.'/view')->with('success','Penambahan video berhasil');

       }
     }

    it give me an errors like this :

    Unable to probe /var/www/html/dev/laravel/storage/app/https://dev.cilsy.id/assets/source/lessons/video-4/1. Introduction (1).mp4

    so the problem is it the way I check that it has multiple file using is_array is right ? and the second what can cause this problems ?

  • how do I fix the permission problem so ffmpeg can write when run from a cgi-script ?

    7 juillet 2022, par NewtownGuy

    I have a shell script in Linux that runs ffmpeg for the purpose of converting video to a series snapshots in response to a command from apache2. The shell script is run from a perl script in /var/www/cgi-bin that is called by apache2. The conversion works fine when I run the shell script from the command line when I login as root. The problem is that ffmpeg cannot write its output when it's run from the cgi-script. With the exception of ffmpeg writing files, the shell script runs from the cgi-script just fine because I enabled it in /etc/sudoers and I run it with sudo. I have read several posts on the use of ffmpeg and setting permissions, and have tried the following without success :

    


      

    1. The full path to the snapshot files being written is given in the ffmpeg command

      


    2. 


    3. I tried placing the shell script that runs ffmpeg into a root folder instead of the same folder, /var/www/cgi-bin, as the perl cgi script

      


    4. 


    5. I gave the folder, /var/www/html/userName/video, where ffmpeg is to write its snapshots, www-data:root ownership instead of the original root:root, and I tried changing its write permission from 755 to 777.

      


    6. 


    7. ffmpeg is installed in the default location, /use/bin

      


    8. 


    


    How do I fix this ?

    


    Thank you in advance.