
Recherche avancée
Autres articles (111)
-
MediaSPIP Player : les contrôles
26 mai 2010, parLes contrôles à la souris du lecteur
En plus des actions au click sur les boutons visibles de l’interface du lecteur, il est également possible d’effectuer d’autres actions grâce à la souris : Click : en cliquant sur la vidéo ou sur le logo du son, celui ci se mettra en lecture ou en pause en fonction de son état actuel ; Molette (roulement) : en plaçant la souris sur l’espace utilisé par le média (hover), la molette de la souris n’exerce plus l’effet habituel de scroll de la page, mais diminue ou (...) -
Script d’installation automatique de MediaSPIP
25 avril 2011, parAfin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
La documentation de l’utilisation du script d’installation (...) -
Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs
12 avril 2011, parLa manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras.
Sur d’autres sites (14923)
-
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 can I seek to frame No. X with ffmpeg ?
27 août 2018, par GiumoI’m writing a video editor, and I need to seek to exact frame, knowing the frame number.
Other posts on stackoverflow told me that ffmpeg may give me a few broken frames after seeking, which is not a problem for playback but a big problem for video editors.
And I need to seek by frame number, not by time, which will become inaccurate when converted to frame number.
I’ve read dranger’s tuts (which is outdated now), and end up with :
av_seek_frame(fmt_ctx, video_stream_id, frame, AVSEEK_FLAG_ANY);
It always seek to frame
No. 0
, and alwaysreturn 0
which means success.
Then I tried to read Blender’s source code and found it really complex(maybe I should implement an image buffer ?).So, is there any simple way to seek to a frame with just a simple call like
seek(context, frame_number)
(while getting a full frame, not a broken one) ? Or, is there any lightweight library that simplifies this ?EDIT :
Thanks to praks411,I found the solution :void AV_seek(AV * av, size_t frame)
{
int frame_delta = frame - av->frame_id;
if (frame_delta < 0 || frame_delta > 5)
av_seek_frame(av->fmt_ctx, av->video_stream_id,
frame, AVSEEK_FLAG_BACKWARD);
while (av->frame_id != frame)
AV_read_frame(av);
}
void AV_read_frame(AV * av)
{
AVPacket packet;
int frame_done;
while (av_read_frame(av->fmt_ctx, &packet) >= 0) {
if (packet.stream_index == av->video_stream_id) {
avcodec_decode_video2(av->codec_ctx, av->frame, &frame_done, &packet);
if (frame_done) {
...
av->frame_id = packet.dts;
av_free_packet(&packet);
return;
}
}
av_free_packet(&packet);
}
}EDIT2 :
Turns out there is a library for this : FFMS2.
It is "an FFmpeg based source library [...] for easy frame accurate access", and is portable (at least across Windows and Linux). -
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 ?