source: spip-zone/_plugins_/spipmotion/inc/spipmotion_mediainfo.php @ 47795

Last change on this file since 47795 was 47795, checked in by kent1@…, 8 years ago

On récupère le degré de rotation (pour les videos d'iphone par exemple) que l'on met en base ... et on l'utilise pour tourner les encodages ...

ffmpeg2theora ne peut tourner les videos donc dans ces cas là on force l'usage de ffmpeg

File size: 2.0 KB
Line 
1<?php 
2/**
3 * SPIPmotion
4 * Gestion de l'encodage et des métadonnées de vidéos directement dans SPIP
5 *
6 * Auteurs :
7 * Quentin Drouet (kent1)
8 * 2008-2010 - Distribué sous licence GNU/GPL
9 *
10 */
11
12/**
13 * Récupération des métadonnées via MediaInfo
14 * @param string $chemin
15 */
16function inc_spipmotion_mediainfo_dist($chemin){
17        $infos = array();
18        if(file_exists($chemin)){
19                $metadatas = shell_exec("mediainfo -f --Output=XML $chemin");
20                include_spip('inc/xml');
21                $arbre = spip_xml_parse($metadatas);
22                spip_xml_match_nodes(",^track type,",$arbre, $tracks);
23                foreach($tracks as $track => $info){
24                        $metas[$track] = $info;
25                        spip_log($info,'spipmotion');
26                        if($track == 'track type="General"'){
27                                $infos['titre'] = $info[0]['Title'][0] ? $info[0]['Title'][0] : $info[0]['Movie_name'][0];
28                                $infos['descriptif'] = $info[0]['Description'][0] ? $info[0]['Description'][0] : $info[0]['desc'][0];
29                                $infos['credits'] .= $info[0]['Performer'][0]? $info[0]['Performer'][0].($info[0]['Copyright'][0] ? ' - '.$info[0]['Copyright'][0] : '') : $info[0]['Copyright'][0] ;
30                                $infos['duree'] = $info[0]['Duration'][0] / 1000;
31                                $infos['bitrate'] = $info[0]['Overall_bit_rate'][0];
32                        }
33                        if($track == 'track type="Video"'){
34                                $infos['videobitrate'] = $info[0]['Bit_rate'][0];
35                                $infos['hauteur'] = $info[0]['Height'][0];
36                                $infos['largeur'] = $info[0]['Width'][0];
37                                $infos['videocodec'] = $info[0]['Format'][0];
38                                $infos['framerate'] = $info[0]['Frame_rate'][0];
39                                $infos['framecount'] = $info[0]['Frame_count'][0];
40                                $infos['rotation'] = intval($info[0]['Rotation'][0]);
41                                $infos['hasvideo'] = 'oui';
42                        }
43                        if($track == 'track type="Audio"'){
44                                $infos['hasaudio'] = 'oui';
45                                $infos['audiobitrate'] = $info[0]['Bit_rate'][0];
46                                $infos['audiochannels'] = $info[0]['Channel_s_'][0];
47                                $infos['canaux'] = $info[0]['Channel_s_'][0];
48                                $infos['audiosamplerate'] = $info[0]['Sampling_rate'][0];
49                                $infos['audiocodec'] = $info[0]['Codec'][0];
50                        }
51                }
52        }
53        $infos['metas'] = serialize($metas);
54        return $infos;
55}
56?>
Note: See TracBrowser for help on using the repository browser.