
Recherche avancée
Autres articles (79)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
Creating farms of unique websites
13 avril 2011, parMediaSPIP 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" (...) -
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)
Sur d’autres sites (8433)
-
How to install ffmpeg
9 mars 2016, par user5913892I want to make a "mini" editor video. My goal is, cut some part of the video and then save it and also create an undo button. Now , I was looking for the best solution (This operation have to be done in a website) and I found that I have to use ffmpeg. I didn’t know if ffmpeg was already installed on my server and I use this php script to discover it :
<?php
/**
* Test script for FFmpeg
*
* @author Andycoder /wdevblog.net.ru/>
*/
ini_set('display_errors',1);
error_reporting(E_ALL);
$is_windows = strpos( php_uname(), "Windows" ) !== false;
$ffmpeg_path = !empty( $_POST['ffmpeg_path'] ) && strpos( $_POST['ffmpeg_path'], 'ffmpeg' ) !== false ? trim( $_POST['ffmpeg_path'] ) : '';
if( !$ffmpeg_path && !$is_windows ){
$ffmpeg_path = trim( shell_exec( 'which ffmpeg' ) );
}
function getCodecs( $ffmpeg_path = '' ) {
$lines = array();
$encoders = array();
exec( "{$ffmpeg_path} -codecs", $lines);
foreach ($lines as $line) {
if (preg_match('/^\s+([A-Z .]+)\s+(\w{2,})\s+(.*)$/', $line, $m)) {
$type = trim($m[1]);
if (strpos($type, 'E') !== false) {
$encoder = trim($m[2]);
if (strpos($encoder, ',') !== false) {
foreach (split(',', $encoder) as $e) {
$encoders[] = $e;
}
} else {
$encoders[] = $encoder;
}
}
}
}
sort($encoders);
return $encoders;
}
function getPHPPath(){
$is_windows = strpos( strtolower(php_uname()), 'windows' ) !== false;
if( $is_windows ){
$output = dirname(ini_get('extension_dir')) . "/php.exe";
}else{
$output = trim(shell_exec("which php"));
}
return $output;
}
$info = array();
$info['php_version'] = array( 'name' => 'PHP version', 'value' => phpversion() );
$info['php_path'] = array( 'name' => 'PHP path', 'value' => getPHPPath() );
$info['web_server'] = array( 'name' => 'Web server', 'value' => $_SERVER['SERVER_SOFTWARE'] );
$info['ffmpeg_path'] = array( 'name' => 'FFMPEG path', 'value' => $ffmpeg_path );
$info['ffmpeg_version'] = array( 'name' => 'FFMPEG version', 'value' => '' );
if( $ffmpeg_path ){
$ffmpeg_ver = shell_exec( "{$ffmpeg_path} -version" );
preg_match( '/.+version.+/', $ffmpeg_ver, $matches );
if( !empty( $matches ) ){
$info['ffmpeg_version']['value'] = $matches[0];
}
}
$info['yamdi_path'] = array( 'name' => 'Yamdi path', 'value' => !$is_windows ? trim(shell_exec('which yamdi')) : '' );
$info['mp4box_path'] = array( 'name' => 'MP4Box (GPAC) path', 'value' => !$is_windows ? trim(shell_exec('which MP4Box')) : '' );
$info['qtfaststart_path'] = array( 'name' => 'qt-faststart path', 'value' => !$is_windows ? trim(shell_exec('which qt-faststart')) : '' );
$info['flvtool2_path'] = array( 'name' => 'flvtool2 path', 'value' => !$is_windows ? trim(shell_exec('which flvtool2')) : '' );
$info['ffmpeg_codecs'] = array( 'name' => 'FFMPEG codecs', 'value' => array() );
if( $ffmpeg_path ) {
$info['ffmpeg_codecs']['value'] = getCodecs( $ffmpeg_path );
}
if( empty( $info['ffmpeg_codecs']['value'] ) ){
$info['ffmpeg_path']['value'] = '';
}
ksort($info);
?>
<code class="echappe-js"><script type="text/javascript"><br />
function expandCollapse( id ){<br />
if( document.getElementById(id).style.display == 'none' ){<br />
document.getElementById(id).style.display = 'block';<br />
}else{<br />
document.getElementById(id).style.display = 'none';<br />
}<br />
}<br />
</script>Property Value < ?php foreach( $info as $key => $opt ) : ?>
< ?php echo $opt[’name’] ; ?> : < ?php if( !empty( $opt[’value’] ) ) : ?>
< ?php
if( !is_array( $opt[’value’] ) ) :
echo $opt[’value’] ;
else : ?>< ?php endif ; ?>
< ?php else : ?>
[Not found]
< ?php endif ; ?>< ?php endforeach ; ?>
that return me this :
So, I have not ffmpeg installed on that server. The server should be Linux, I say this because I use one of the many website in Internet to discover it.
I know that the website say that the Webserver is Engine-x, but my company has told that is Apache (as the php script already told me). Now , I found this link http://www.mysql-apache-php.com/ffmpeg-install.htm (in Stackoverflow and many other parts) that say how to install ffmpeg in Linux, but Where should I execute these commands ? Should I use Putty ? or What ?
-
How to install ffmpeg
8 octobre 2017, par user5913892I want to make a "mini" editor video. My goal is, cut some part of the video and then save it and also create an undo button. Now , I was looking for the best solution (This operation have to be done in a website) and I found that I have to use ffmpeg. I didn’t know if ffmpeg was already installed on my server and I use this php script to discover it :
<?php
/**
* Test script for FFmpeg
*
* @author Andycoder /wdevblog.net.ru/>
*/
ini_set('display_errors',1);
error_reporting(E_ALL);
$is_windows = strpos( php_uname(), "Windows" ) !== false;
$ffmpeg_path = !empty( $_POST['ffmpeg_path'] ) && strpos( $_POST['ffmpeg_path'], 'ffmpeg' ) !== false ? trim( $_POST['ffmpeg_path'] ) : '';
if( !$ffmpeg_path && !$is_windows ){
$ffmpeg_path = trim( shell_exec( 'which ffmpeg' ) );
}
function getCodecs( $ffmpeg_path = '' ) {
$lines = array();
$encoders = array();
exec( "{$ffmpeg_path} -codecs", $lines);
foreach ($lines as $line) {
if (preg_match('/^\s+([A-Z .]+)\s+(\w{2,})\s+(.*)$/', $line, $m)) {
$type = trim($m[1]);
if (strpos($type, 'E') !== false) {
$encoder = trim($m[2]);
if (strpos($encoder, ',') !== false) {
foreach (split(',', $encoder) as $e) {
$encoders[] = $e;
}
} else {
$encoders[] = $encoder;
}
}
}
}
sort($encoders);
return $encoders;
}
function getPHPPath(){
$is_windows = strpos( strtolower(php_uname()), 'windows' ) !== false;
if( $is_windows ){
$output = dirname(ini_get('extension_dir')) . "/php.exe";
}else{
$output = trim(shell_exec("which php"));
}
return $output;
}
$info = array();
$info['php_version'] = array( 'name' => 'PHP version', 'value' => phpversion() );
$info['php_path'] = array( 'name' => 'PHP path', 'value' => getPHPPath() );
$info['web_server'] = array( 'name' => 'Web server', 'value' => $_SERVER['SERVER_SOFTWARE'] );
$info['ffmpeg_path'] = array( 'name' => 'FFMPEG path', 'value' => $ffmpeg_path );
$info['ffmpeg_version'] = array( 'name' => 'FFMPEG version', 'value' => '' );
if( $ffmpeg_path ){
$ffmpeg_ver = shell_exec( "{$ffmpeg_path} -version" );
preg_match( '/.+version.+/', $ffmpeg_ver, $matches );
if( !empty( $matches ) ){
$info['ffmpeg_version']['value'] = $matches[0];
}
}
$info['yamdi_path'] = array( 'name' => 'Yamdi path', 'value' => !$is_windows ? trim(shell_exec('which yamdi')) : '' );
$info['mp4box_path'] = array( 'name' => 'MP4Box (GPAC) path', 'value' => !$is_windows ? trim(shell_exec('which MP4Box')) : '' );
$info['qtfaststart_path'] = array( 'name' => 'qt-faststart path', 'value' => !$is_windows ? trim(shell_exec('which qt-faststart')) : '' );
$info['flvtool2_path'] = array( 'name' => 'flvtool2 path', 'value' => !$is_windows ? trim(shell_exec('which flvtool2')) : '' );
$info['ffmpeg_codecs'] = array( 'name' => 'FFMPEG codecs', 'value' => array() );
if( $ffmpeg_path ) {
$info['ffmpeg_codecs']['value'] = getCodecs( $ffmpeg_path );
}
if( empty( $info['ffmpeg_codecs']['value'] ) ){
$info['ffmpeg_path']['value'] = '';
}
ksort($info);
?>
<code class="echappe-js"><script type="text/javascript"><br />
function expandCollapse( id ){<br />
if( document.getElementById(id).style.display == 'none' ){<br />
document.getElementById(id).style.display = 'block';<br />
}else{<br />
document.getElementById(id).style.display = 'none';<br />
}<br />
}<br />
</script>Property Value < ?php foreach( $info as $key => $opt ) : ?>
< ?php echo $opt[’name’] ; ?> : < ?php if( !empty( $opt[’value’] ) ) : ?>
< ?php
if( !is_array( $opt[’value’] ) ) :
echo $opt[’value’] ;
else : ?>< ?php endif ; ?>
< ?php else : ?>
[Not found]
< ?php endif ; ?>< ?php endforeach ; ?>
that return me this :
So, I have not ffmpeg installed on that server. The server should be Linux, I say this because I use one of the many website in Internet to discover it.
I know that the website say that the Webserver is Engine-x, but my company has told that is Apache (as the php script already told me). Now , I found this link http://www.mysql-apache-php.com/ffmpeg-install.htm (in Stackoverflow and many other parts) that say how to install ffmpeg in Linux, but Where should I execute these commands ? Should I use Putty ? or What ?
-
Interfacing to an Xbox Optical Drive
1er octobre 2013, par Multimedia Mike — xboxThe next generation Xbox is going to hit the streets soon. But for some reason, I’m still interested in the previous generation’s unit (i.e., the original Xbox). Specifically, I’ve always wondered if it’s possible to use the original Xbox’s optical drive in order to read Xbox discs from Linux. I was never curious enough to actually buy an Xbox just to find out but I eventually came across a cast-off console on a recycle pile.
I have long known that the Xbox has what appears to be a more or less standard optical drive with a 40-pin IDE connector. The only difference is the power adapter which I surmise is probably the easiest way to turn a bit of standardized hardware into a bit of proprietary hardware. The IDE and power connectors look like this :
Thus, I wanted to try opening an Xbox and plugging the optical drive into a regular PC, albeit one that supports IDE cables, and allow the Xbox to supply power to the drive. Do you still have hardware laying around that has 40-pin IDE connectors ? I guess my Mac Mini PPC fits the bill, but I’ll be darned if I’m going to pry that thing open again. I have another IDE-capable machine buried in my closet, last called into service when I needed a computer with a native RS-232 port 3 years ago. The ordeal surrounding making this old computer useful right now can be another post entirely.
Here’s what the monstrosity looks like thanks to characteristically short IDE cable lengths :
Process :
- Turn on Xbox first
- Turn on PC
Doing these things in the opposite order won’t work since the kernel really wants to see the drive when booting up. Inspecting the
'dmesg'
log afterward reveals interesting items :<br />
hdd: PHILIPS XBOX DVD DRIVE, ATAPI CD/DVD-ROM drive<br />
hdd: host max PIO5 wanted PIO255(auto-tune) selected PIO4<br />
hdd: UDMA/33 mode selected<br />
[...]<br />
hdd: ATAPI DVD-ROM drive, 128kB Cache<br />Why is that interesting ? When is the last time to saw disk devices prefixed by ‘hd’ rather than ‘sd’ ? Blast from the past. Oh, and the optical drive’s vendor string clearly indicates that this is an Xbox drive saying ‘hi !’.
Time To Read
When I first studied an Xbox disc in a normal optical drive, I noticed that I was able to read 6992 2048-byte sectors — about 14 MB of data — as reported by the disc table of contents (TOC). This is just enough data to play a standard DVD video animation that kindly instructs the viewer to please use a proper Xbox. At this point, I estimated that there must be something special about Xbox optical drive firmware that knows how to read alternate information on these discs and access further sectors.I ran my TOC query tool with an Xbox Magazine demo disc in the optical drive and it reported substantially more than 6992 sectors, enough to account for more than 2 GB of data. That’s promising. I then tried running
'dd'
against the device and it was able to read… about 14 MB, an exact quantity of bytes that, when divided by 2048 bytes/sector, yields 6992 sectors.Future (Past ?) Work
Assuming Google is your primary window into the broader internet, the world is beginning to lose its memory of things pertaining to the original Xbox (Microsoft’s naming scheme certainly doesn’t help searches). What I’m saying is that it can be difficult to find information about this stuff now. However, I was able to learn that a host needs to perform a sort of cryptographic handshake with the drive at the SCSI level before it is allowed to access the forbidden areas of the disc. I think. I’m still investigating this and will hopefully post more soon.