
Recherche avancée
Médias (1)
-
The pirate bay depuis la Belgique
1er avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
Autres articles (67)
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)
Sur d’autres sites (9181)
-
Imagick refresh
25 septembre 2013, par Mikko Koppanen — ImagickAfter some hiatus I’ve been getting back on fixing bugs on Imagick and getting the code into more representable condition. This hiatus has been a result of busy work schedule and getting a new start-up running in Kuala Lumpur.
While fixing a bug related to clone keyword I came across the following resource : http://www.rubblewebs.co.uk/imagick/. The page contains quite a nice collection of Imagick operations and is definitely worth checking out.
On the other news, the development has been moved to Github. As I’ve been the most active developer of Imagick in the past years I decided to move the code to Github where rest of my projects are located : https://github.com/mkoppanen/imagick. For the past few days there has been quite a lot of development, mainly working on removing the excessive use of macros in the code to make things more readable and debuggable. This might be a good place to give thanks to Remi for fixing quite a lot of compile warnings and raising bugs regarding Fedora Packaging Policy. Most likely there will be a couple of beta releases in the near future.
As mentioned in the previous post Windows builds are now available via http://windows.php.net and my builds provided here should be considered obsolete.
-
Imagick refresh
25 septembre 2013, par Mikko Koppanen — ImagickAfter some hiatus I’ve been getting back on fixing bugs on Imagick and getting the code into more representable condition. This hiatus has been a result of busy work schedule and getting a new start-up running in Kuala Lumpur.
While fixing a bug related to clone keyword I came across the following resource : http://www.rubblewebs.co.uk/imagick/. The page contains quite a nice collection of Imagick operations and is definitely worth checking out.
On the other news, the development has been moved to Github. As I’ve been the most active developer of Imagick in the past years I decided to move the code to Github where rest of my projects are located : https://github.com/mkoppanen/imagick. For the past few days there has been quite a lot of development, mainly working on removing the excessive use of macros in the code to make things more readable and debuggable. This might be a good place to give thanks to Remi for fixing quite a lot of compile warnings and raising bugs regarding Fedora Packaging Policy. Most likely there will be a couple of beta releases in the near future.
As mentioned in the previous post Windows builds are now available via http://windows.php.net and my builds provided here should be considered obsolete.
-
PHP - Read and write the same file hangs
2 février 2016, par AdracatI’m trying to use FFMPEG to make some works with video on the server, and something I need to do is to get the progress of the process.
I searched a little and I found this solution which tells to write the log into a file and then reading and parsing it.
The problem
What is driving me crazy is that I tell FFMPEG - with
exec
- (process A) to write the log into a file, but when I try to read it - withfile_get_contents()
- (process B) it does not show the contents until process A is finished (or interrupted the PHP script).So, when process A finishes or it says "PHP script timeout", then I can read the file as times as I want, refreshing the page (process B) and showing the contents at the time.
What I’ve tried
I’ve tried to use
fopen()
to create the file withw
,w+
anda
parameters, using - and without using -fclose()
. I’ve tried to use alsoflock()
just in case it gets faster to read to process B if it knows it’s already locked and does not have to wait, but then FFMPEG is not able to write into the file.I’ve searched for multithreading too, but I think there must be an easier and simpler way.
I’ve used also CURL and HTTP context, as this link suggests, but no luck.
I’ve tried, too, to use PHP-FFMPEG but it’s not supporting the last FFMPEG version, so I cannot use it.
When I said before "(or interrupted the PHP script)" is because I tried to wait and, when PHP got a timeout, process B worked alright and the file was still updating.
The code
Process A (fileA.php)
exec('ffmpeg -y -i input_file.mp4 output_file.avi 2> C:\Full\Path\To\File\log.txt 1>&2');
Process B (fileB.php)
$content = file_get_contents($file);
if($content){
//get duration of source
preg_match("/Duration: (.*?), start:/", $content, $matches);
$rawDuration = $matches[1];
//rawDuration is in 00:00:00.00 format. This converts it to seconds.
$ar = array_reverse(explode(":", $rawDuration));
$duration = floatval($ar[0]);
if (!empty($ar[1])) $duration += intval($ar[1]) * 60;
if (!empty($ar[2])) $duration += intval($ar[2]) * 60 * 60;
//get the time in the file that is already encoded
preg_match_all("/time=(.*?) bitrate/", $content, $matches);
$rawTime = array_pop($matches);
//this is needed if there is more than one match
if (is_array($rawTime)){$rawTime = array_pop($rawTime);}
//rawTime is in 00:00:00.00 format. This converts it to seconds.
$ar = array_reverse(explode(":", $rawTime));
$time = floatval($ar[0]);
if (!empty($ar[1])) $time += intval($ar[1]) * 60;
if (!empty($ar[2])) $time += intval($ar[2]) * 60 * 60;
//calculate the progress
$progress = round(($time/$duration) * 100);
echo "Duration: " . $duration . "<br />";
echo "Current Time: " . $time . "<br />";
echo "Progress: " . $progress . "%";
}The process
I just open
fileA.php
on a Chrome tab and, after a few seconds, I openfileB.php
on another Chrome tab (and it stays as loading).What I need
I need to be able to load the file and show the information I want to show while the file is being written (by
exec
andFFMPEG
or other PHP scripts), so I can update the progress percentage with some AJAX calls.Extra information
At this point, I’m using PHP 5.4 on a IIS 7.5 with Windows 7 Professional.
Thank you everyone for your time, help and patience !
Best regards.