Recherche avancée

Médias (0)

Mot : - Tags -/xmlrpc

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (53)

  • La file d’attente de SPIPmotion

    28 novembre 2010, par

    Une file d’attente stockée dans la base de donnée
    Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
    Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

Sur d’autres sites (7725)

  • Java process sleeps after 397 seconds

    24 septembre 2015, par Satmurat

    This code records video only 397 seconds from live stream, after stream terminates. File size 20 Megabytes. Java and ffmpeg processes are not terminated. Centos 6, Oracle JDK 8. Without java ffmpeg recording is not terminated. What is may be problem ? May be any limits for JVM or OS ?

    public class FFMpegLauncher extends Thread {
       private Process pr;
       public static void main(String[] args) {
           FFMpegLauncher launcher = new FFMpegLauncher();
           Runtime rt = Runtime.getRuntime();
           rt.addShutdownHook(launcher);
           try {
               if(args.length > 0) {
                   String cameraUid = args[0];
                   String rtspURL = "rtsp://otherhost/" + cameraUid;
                   launcher.pr = rt.exec("/usr/local/bin/ffmpeg -i " + rtspURL + " -vcodec copy -r 15 -f flv out.mp4");
                   launcher.pr.waitFor();
               } else {
                   System.exit(-1);
               }

           } catch (IOException | InterruptedException e) {
               e.printStackTrace();
               System.exit(-1);
           }
       }
    }
  • How can I manually extract Metadata from mp4 Videoframes ?

    3 décembre 2020, par bennimueller

    I have a large GoPro Video about 11:44 min. Each second the GoPro records 30 frames with datetime(UNIX) and gps(lat, long) information. So there are round about 21188 frames in my video.

    


    I need to extract the GPS data to bring every single frame to a map. There's a tool called GoProtelemetryextractor (https://goprotelemetryextractor.com/free/). This gives me a csv file with 19800 lines (1 line for each frame). Obviously there are 1400 rows/frames missing in the csv. If I now multiplex the csv with the mp4 in a GIS software, the frames get assigned to wrong "csv frames". I need to match these 19800 frames correctly to the frames in the video by deleting "None metadata frames" out of the video.
I guess the problem is that the goprotelemetry extractor starts writing the csv with the first metadata it finds. And not starting at the first frame and just write "NO METADATA ROWS".

    


    Basically my question is : How can I extract the metadata from each mp4 Frame "manually" to know where the csv "starts" and match video and csv ?

    


  • Unable to probe

    8 mai 2017, par Etson

    I’m using php-ffmpeg on windows with cakephp3, and encountered an issue that says :

    Unable to probe /var/www/blogchild.dev/webroot/uploads/records//Танец довольного теннисиста.mp4

    MultimediaController

    <?php
    namespace App\Controller;

    use App\Controller\AppController;

    class MultimediaController extends AppController
    {

       public function initialize()
       {
           parent::initialize(); // TODO: Change the autogenerated stub
           $this->Auth->allow(['index', 'addvideo']);
           $this->loadModel('Posts');
           $this->loadComponent('File');
           $this->loadComponent('Flash');
           $this->loadComponent('Upload');
       }

       public function addvideo()
       {
           $this->viewBuilder()->template('addvideo');
           $posts = $this->Posts->newEntity();
    //        $posts = $this->MsPosts->find()->toArray();
    //        dump($posts);
    //        die();
           if ($this->request->is('post')) {
               $data = $this->request->data;
               $data['mentor_id'] = '1';
               $data['nbr_of_views'] = '0';
               $data['nbr_of_loves'] = '0';
               $data['nbr_of_smiles'] = '0';
               $data['mentor_id'] = '1';
               $data['child_id'] = '1';

               $post = $this->Posts->patchEntity($posts, $data);
    //            var_dump($data);
    //            die();
    //            debug($this->MsPosts->save($post));die();

    //                $upload = $this->File->uploadFile($this->request->data['file'], $post['id']);
    //                $post->file = $upload['url'];
               if (!empty($this->request->data['file']['name'])) {
                   $path = '/uploads' . DS . 'records' . DS . $post->id;
                   $this->uploadFile($_FILES['file'], $path, $post->id);
                   $post->file = $path . DS . $_FILES['file']['name'];
                   $this->Posts->save($post);
               } else {
                   $this->Posts->save($post);
               }
               $this->Flash->success(__('The post saved'));
               return $this->redirect(['action' => 'addvideo']);

    AppController

    <?php
    /**
    * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
    * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
    *
    * Licensed under The MIT License
    * For full copyright and license information, please see the LICENSE.txt
    * Redistributions of files must retain the above copyright notice.
    *
    * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
    * @link      http://cakephp.org CakePHP(tm) Project
    * @since     0.2.9
    * @license   http://www.opensource.org/licenses/mit-license.php MIT License
    */
    namespace App\Controller;

    use Cake\Controller\Controller;
    use Cake\Event\Event;
    use Cake\Filesystem\Folder;
    use FFMpeg\Coordinate\TimeCode;
    use FFMpeg\FFMpeg;
    use Cake\Controller\Component;
    use Cake\I18n\I18n;

    /**
    * Application Controller
    *
    * Add your application-wide methods in the class below, your controllers
    * will inherit them.
    *
    * @link http://book.cakephp.org/3.0/en/controllers.html#the-app-controller
    */
    class AppController extends Controller
    {


       /**
        * Initialization hook method.
        *
        * Use this method to add common initialization code like loading components.
        *
        * e.g. `$this->loadComponent('Security');`
        *
        * @return void
        */
       public function initialize()
       {

           parent::initialize();

           $this->loadComponent('Cookie');
           $this->loadComponent('RequestHandler');
           $this->loadComponent('Flash');
           $provider = $this->request->query('provider');
           //if ($provider === null) {
           $this->loadComponent('Auth', [
               'authenticate' => [
                   'Form' => [
                       'finder' => 'auth',
                       'fields' => [
                           'username' => 'email',
                           'password' => 'password'
                       ],
                       'loginAction' => [
                           'controller' => 'Auth',
                           'action' => 'login'
                       ],

                       'loginRedirect' => [
                           'controller' => 'Auth',
                           'action' => 'login'
                       ],

                       'logoutRedirect' => [
                           'controller' => 'Auth',
                           'action' => 'login'
                       ]
                   ],
                   'ADmad/HybridAuth.HybridAuth' => [
                       // All keys shown below are defaults
                       'fields' => [
                           'provider' => 'provider',
                           'openid_identifier' => 'openid_identifier',
                           'email' => 'email'

                       ],
                       'profileModel' => 'ADmad/HybridAuth.SocialProfiles',
                       'profileModelFkField' => 'user_id',

                       // The URL Hybridauth lib should redirect to after authentication.
                       // If no value is specified you are redirect to this plugin's
                       // HybridAuthController::authenticated() which handles persisting
                       // user info to AuthComponent and redirection.
                       'hauth_return_to' => null,

                       'loginRedirect' => [
                           'controller' => 'Auth',
                           'action' => 'login'
                       ],

                       'logoutRedirect' => [
                           'controller' => 'Auth',
                           'action' => 'login'
                       ]
                   ],
               ],



           ]);
    //        } else {
    //            $this->loadComponent('Auth', [
    //                'authenticate' => [
    //                    'Form',
    //
    //
    //                ]
    //
    //            ]);
    //        }

       }

       /**
        * Before render callback.
        *
        * @param \Cake\Event\Event $event The beforeRender event.
        * @return void
        */
       public function beforeRender(Event $event)
       {
           if (!array_key_exists('_serialize', $this->viewVars) &&
               in_array($this->response->type(), ['application/json', 'application/xml'])
           ) {
               $this->set('_serialize', true);
           }

           if ($this->request->session()->read('Auth.User')) {
               $this->set('loggedIn', true);
           } else {
               $this->set('loggedIn', false);
           }
       }

       protected function uploadFile(array $file, $path, $postId)
       {
           $objFile = $file;
           $path = $_SERVER['DOCUMENT_ROOT'] . $path;
           //@TODO check file size|Return error
           $folder = new Folder();
           $folder->create($path, 0755);

           move_uploaded_file($objFile['tmp_name'], $path . DS . $objFile['name']);

           $ffmpeg = FFMpeg::create(
               array(
                   'ffmpeg.binaries' => '/usr/bin/ffmpeg',
                   'ffprobe.binaries' => '/usr/bin/ffprobe',
                   'timeout' => 3600, // The timeout for the underlying process
                   'ffmpeg.threads' => 12,   // The number of threads that FFMpeg should use
               )
           );
           $temp = explode('.', $objFile['name']);
           $video = $ffmpeg->open(WWW_ROOT . 'uploads/records' . DS . $postId . DS . $objFile['name']);
           $frame = $video->frame(TimeCode::fromSeconds(1));
           $userPath = 'uploads/records' . DS . $postId . DS . $temp[0] . '.jpg';
           $frame->save(WWW_ROOT . $userPath);
       }

    WARNING !!!!! Help me......
    enter image description here