
Recherche avancée
Médias (91)
-
DJ Z-trip - Victory Lap : The Obama Mix Pt. 2
15 septembre 2011
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
Matmos - Action at a Distance
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
DJ Dolores - Oslodum 2004 (includes (cc) sample of “Oslodum” by Gilberto Gil)
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Danger Mouse & Jemini - What U Sittin’ On ? (starring Cee Lo and Tha Alkaholiks)
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Cornelius - Wataridori 2
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
The Rapture - Sister Saviour (Blackstrobe Remix)
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (71)
-
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 (...) -
Configurer la prise en compte des langues
15 novembre 2010, parAccéder à la configuration et ajouter des langues prises en compte
Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...) -
XMP PHP
13 mai 2011, parDixit Wikipedia, XMP signifie :
Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)
Sur d’autres sites (5686)
-
PHP FFmpeg video aspect ratio problem [SOLVED]
29 août 2011, par Herr Kaleuni compiled the new version of FFMPEG and the padding commands have been deprecated.
As i try to get familiar with the new -vf pad= commands, i want to ask, how can i
convert a video without changing it's aspect ratio.I've checked numerous solutions from stackoverflow, nothing seemed to work.
Can someone, please post a working PHP example or cmd line. I would be VERY happy.Please note that the videos in question, could be 4:3 and also be 16:9
Let's say, i convert a 16:9 video to 640x480 format. It will need some bars at
the top and at the bottom. That is what i want to do.Thanks
EDIT :
I solved the problem on my own. The FFmpeg documentation is a little bit weird so
you have to experiment yourself a little bit.
The padding formula is like :$pad_horizontal = $target_width + $pad_left + $pad_right;
$pad_vertical = $target_height;
// blah
$command .= " -vf pad=$pad_horizontal:$pad_vertical:". $pad_left .":". $pad_top .":black";Pay special attention at the $pad_vertical part since the paddings there are better
not added so that the padding calculation of ffmpeg is not broken.Here is the full source code to the demo
<?
/***********************************************************************************
get_dimensions()
Takes in a set of video dimensions - original and target - and returns the optimal conversion
dimensions. It will always return the smaller of the original or target dimensions.
For example: original dimensions of 320x240 and target dimensions of 640x480.
The result will be 320x240 because converting to 640x480 would be a waste of disk
space, processing, and bandwidth (assuming these videos are to be downloaded).
@param $original_width: The actual width of the original video file which is to be converted.
@param $original_height: The actual height of the original video file which is to be converted.
@param $target_width: The width of the video file which we will be converting to.
@param $target_height: The height of the video file which we will be converting to.
@param $force_aspect: Boolean value of whether or not to force conversion to the target's
aspect ratio using padding (so the video isn't stretched). If false, the
conversion dimensions will retain the aspect ratio of the original.
Optional parameter. Defaults to true.
@return: An array containing the size and padding information to be used for conversion.
Format:
Array
(
[width] => int
[height] => int
[padtop] => int // top padding (if applicable)
[padbottom] => int // bottom padding (if applicable)
[padleft] => int // left padding (if applicable)
[padright] => int // right padding (if applicable)
)
***********************************************************************************/
function get_dimensions($original_width,$original_height,$target_width,$target_height,$force_aspect)
{
if(!isset($force_aspect))
{
$force_aspect = true;
}
// Array to be returned by this function
$target = array();
$target['padleft'] = 0;
$target['padright'] = 0;
$target['padbottom'] = 0;
$target['padtop'] = 0;
// Target aspect ratio (width / height)
$aspect = $target_width / $target_height;
// Target reciprocal aspect ratio (height / width)
$raspect = $target_height / $target_width;
if($original_width/$original_height !== $aspect)
{
// Aspect ratio is different
if($original_width/$original_height > $aspect)
{
// Width is the greater of the two dimensions relative to the target dimensions
if($original_width < $target_width)
{
// Original video is smaller. Scale down dimensions for conversion
$target_width = $original_width;
$target_height = round($raspect * $target_width);
}
// Calculate height from width
$original_height = round($original_height / $original_width * $target_width);
$original_width = $target_width;
if($force_aspect)
{
// Pad top and bottom
$dif = round(($target_height - $original_height) / 2);
$target['padtop'] = $dif;
$target['padbottom'] = $dif;
}
}
else
{
// Height is the greater of the two dimensions relative to the target dimensions
if($original_height < $target_height)
{
// Original video is smaller. Scale down dimensions for conversion
$target_height = $original_height;
$target_width = round($aspect * $target_height);
}
//Calculate width from height
$original_width = round($original_width / $original_height * $target_height);
$original_height = $target_height;
if($force_aspect)
{
// Pad left and right
$dif = round(($target_width - $original_width) / 2);
$target['padleft'] = $dif;
$target['padright'] = $dif;
}
}
}
else
{
// The aspect ratio is the same
if($original_width !== $target_width)
{
if($original_width < $target_width)
{
// The original video is smaller. Use its resolution for conversion
$target_width = $original_width;
$target_height = $original_height;
}
else
{
// The original video is larger, Use the target dimensions for conversion
$original_width = $target_width;
$original_height = $target_height;
}
}
}
if($force_aspect)
{
// Use the target_ vars because they contain dimensions relative to the target aspect ratio
$target['width'] = $target_width;
$target['height'] = $target_height;
}
else
{
// Use the original_ vars because they contain dimensions relative to the original's aspect ratio
$target['width'] = $original_width;
$target['height'] = $original_height;
}
return $target;
}
function get_vid_dim($file)
{
$command = '/usr/bin/ffmpeg -i ' . escapeshellarg($file) . ' 2>&1';
$dimensions = array();
exec($command,$output,$status);
if (!preg_match('/Stream #(?:[0-9\.]+)(?:.*)\: Video: (?P<videocodec>.*) (?P<width>[0-9]*)x(?P<height>[0-9]*)/',implode("\n",$output),$matches))
{
preg_match('/Could not find codec parameters \(Video: (?P<videocodec>.*) (?P<width>[0-9]*)x(?P<height>[0-9]*)\)/',implode("\n",$output),$matches);
}
if(!empty($matches['width']) && !empty($matches['height']))
{
$dimensions['width'] = $matches['width'];
$dimensions['height'] = $matches['height'];
}
return $dimensions;
}
$command = '/usr/bin/ffmpeg -i ' . $src . ' -ab 96k -b 700k -ar 44100 -f flv -s ' . '640x480 -acodec mp3 '. $video_output_dir . $video_filename . ' 2>&1';
define( 'VIDEO_WIDTH', '640' );
define( 'VIDEO_HEIGHT', '480' );
$src_1 = getcwd() .'/'. 'test_video1.mpeg';
$video_filename1 = 'video1.flv';
$src_2 = getcwd() .'/'. 'test_video2.mp4';
$video_filename2 = 'video2.flv';
$src_3 = getcwd() .'/'. 'test_video3.mp4';
$video_filename3 = 'video3.flv';
convert_video( $src_1, $video_filename1 );
convert_video( $src_2, $video_filename2 );
convert_video( $src_3, $video_filename3 );
function convert_video( $src = '', $video_filename = '' )
{
$video_output_dir = getcwd() .'/';
@unlink ( $video_output_dir . $video_filename );
$original = get_vid_dim($src);
$target = get_dimensions( $original['width'], $original['height'], VIDEO_WIDTH, VIDEO_HEIGHT, TRUE );
echo '<pre>';
print_r( $original );
echo '</pre>';
echo '<pre>';
print_r( $target );
echo '</pre>';
$target_width = $target['width'];
$target_height = $target['height'];
$pad_left = $target['padleft'];
$pad_right = $target['padright'];
$pad_bottom = $target['padbottom'];
$pad_top = $target['padtop'];
$pad_horizontal = $target_width + $pad_left + $pad_right;
$pad_vertical = $target_height; // + $pad_top + $pad_bottom;
$command = '/usr/bin/ffmpeg -i ' . $src;
// $command .= " -s {$target_width}x{$target_height} ";
$command .= " -vf pad=$pad_horizontal:$pad_vertical:". $pad_left .":". $pad_top .":black";
$command .= ' -ab 96k -b 700k -ar 44100';
$command .= ' -f flv ';
$command .= ' -qscale 4';
$command .= ' -ss 30';
$command .= ' -t 5';
$command .= ' -ac 2 -ab 128k -qscale 5 ';
$command .= ' ' . $video_output_dir . $video_filename;
exec( $command, $output, $status );
echo '<pre>';
print_r( $command );
echo '</pre>';
if ( $status == 0 )
{
echo '<br />Convert OK. <br />';
}
else
{
echo '<pre>';
print_r( $output );
echo '</pre>';
}
echo '<br />';
echo '<br />';
}
?>
</height></width></videocodec></height></width></videocodec>Thank you and have fun :)
-
Rtsp streaming with 3gp (Video encoded with ffmpeg) breaking every 8 seconds
8 août 2012, par user1581063I have set up Darwin streaming server(6.0) to stream rtsp on android / other mobile devices in AWS using Ec2.
I have opened all UDP and necessary tcp ports required for playing RTSPI am using ffmpeg to encode videos. Below is the command used for encoding a H264 video to H263.
ffmpeg -i test1.mp4 -f 3gp -s 176x144 -vcodec h263 -b:v 339k -r 14.895 -acodec libamr_nb -ac 1 -ar 8000 -ab 12.2k -y test.3gp
The encoded videos stops every multiples of 8 seconds, bufffers and plays again in all Android phone(< 4.0).
I tried all the options still the behavior is same. The same RTSP link plays well with Daroon player( downloaded from google play) on Android or VLC player in windows.
I am not able to figure whether its a encoding issue or server side issue.
Link for the mobile : m.try.vasop.com/rtsp.php
Link for the RTSP : rtsp ://175.41.130.157/1343973357914_h263.3gp
-
ffmpeg : Factorize video resampling.
30 août 2011, par Alex Converseffmpeg : Factorize video resampling.