
Recherche avancée
Autres articles (10)
-
Selection of projects using MediaSPIP
2 mai 2011, parThe examples below are representative elements of MediaSPIP specific uses for specific projects.
MediaSPIP farm @ Infini
The non profit organizationInfini develops hospitality activities, internet access point, training, realizing innovative projects in the field of information and communication technologies and Communication, and hosting of websites. It plays a unique and prominent role in the Brest (France) area, at the national level, among the half-dozen such association. Its members (...) -
Sélection de projets utilisant MediaSPIP
29 avril 2011, parLes exemples cités ci-dessous sont des éléments représentatifs d’usages spécifiques de MediaSPIP pour certains projets.
Vous pensez avoir un site "remarquable" réalisé avec MediaSPIP ? Faites le nous savoir ici.
Ferme MediaSPIP @ Infini
L’Association Infini développe des activités d’accueil, de point d’accès internet, de formation, de conduite de projets innovants dans le domaine des Technologies de l’Information et de la Communication, et l’hébergement de sites. Elle joue en la matière un rôle unique (...) -
Contribute to a better visual interface
13 avril 2011MediaSPIP is based on a system of themes and templates. Templates define the placement of information on the page, and can be adapted to a wide range of uses. Themes define the overall graphic appearance of the site.
Anyone can submit a new graphic theme or template and make it available to the MediaSPIP community.
Sur d’autres sites (2270)
-
aarch64 : vp9itxfm16 : Do a simpler half/quarter idct16/idct32 when possible
25 février 2017, par Martin Storsjöaarch64 : vp9itxfm16 : Do a simpler half/quarter idct16/idct32 when possible
This work is sponsored by, and copyright, Google.
This avoids loading and calculating coefficients that we know will
be zero, and avoids filling the temp buffer with zeros in places
where we know the second pass won’t read.This gives a pretty substantial speedup for the smaller subpartitions.
The code size increases from 21512 bytes to 31400 bytes.
The idct16/32_end macros are moved above the individual functions ; the
instructions themselves are unchanged, but since new functions are added
at the same place where the code is moved from, the diff looks rather
messy.Before :
vp9_inv_dct_dct_16x16_sub1_add_10_neon : 284.6
vp9_inv_dct_dct_16x16_sub2_add_10_neon : 1902.7
vp9_inv_dct_dct_16x16_sub4_add_10_neon : 1903.0
vp9_inv_dct_dct_16x16_sub8_add_10_neon : 2201.1
vp9_inv_dct_dct_16x16_sub12_add_10_neon : 2510.0
vp9_inv_dct_dct_16x16_sub16_add_10_neon : 2821.3
vp9_inv_dct_dct_32x32_sub1_add_10_neon : 1011.6
vp9_inv_dct_dct_32x32_sub2_add_10_neon : 9716.5
vp9_inv_dct_dct_32x32_sub4_add_10_neon : 9704.9
vp9_inv_dct_dct_32x32_sub8_add_10_neon : 10641.7
vp9_inv_dct_dct_32x32_sub12_add_10_neon : 11555.7
vp9_inv_dct_dct_32x32_sub16_add_10_neon : 12499.8
vp9_inv_dct_dct_32x32_sub20_add_10_neon : 13403.7
vp9_inv_dct_dct_32x32_sub24_add_10_neon : 14335.8
vp9_inv_dct_dct_32x32_sub28_add_10_neon : 15253.6
vp9_inv_dct_dct_32x32_sub32_add_10_neon : 16179.5After :
vp9_inv_dct_dct_16x16_sub1_add_10_neon : 282.8
vp9_inv_dct_dct_16x16_sub2_add_10_neon : 1142.4
vp9_inv_dct_dct_16x16_sub4_add_10_neon : 1139.0
vp9_inv_dct_dct_16x16_sub8_add_10_neon : 1772.9
vp9_inv_dct_dct_16x16_sub12_add_10_neon : 2515.2
vp9_inv_dct_dct_16x16_sub16_add_10_neon : 2823.5
vp9_inv_dct_dct_32x32_sub1_add_10_neon : 1012.7
vp9_inv_dct_dct_32x32_sub2_add_10_neon : 6944.4
vp9_inv_dct_dct_32x32_sub4_add_10_neon : 6944.2
vp9_inv_dct_dct_32x32_sub8_add_10_neon : 7609.8
vp9_inv_dct_dct_32x32_sub12_add_10_neon : 9953.4
vp9_inv_dct_dct_32x32_sub16_add_10_neon : 10770.1
vp9_inv_dct_dct_32x32_sub20_add_10_neon : 13418.8
vp9_inv_dct_dct_32x32_sub24_add_10_neon : 14330.7
vp9_inv_dct_dct_32x32_sub28_add_10_neon : 15257.1
vp9_inv_dct_dct_32x32_sub32_add_10_neon : 16190.6Signed-off-by : Martin Storsjö <martin@martin.st>
-
Revision e890c2579b : add a context tree structure to encoder This patch sets up a quad_tree structur
17 avril 2014, par Jim BankoskiChanged Paths :
Modify /vp9/encoder/vp9_block.h
Add /vp9/encoder/vp9_context_tree.c
Add /vp9/encoder/vp9_context_tree.h
Modify /vp9/encoder/vp9_encodeframe.c
Modify /vp9/encoder/vp9_firstpass.c
Modify /vp9/encoder/vp9_onyx_if.c
Modify /vp9/vp9cx.mk
add a context tree structure to encoderThis patch sets up a quad_tree structure (pc_tree) for holding all of
pick_mode_context data we use at any square block size during encoding
or picking modes. That includes contexts for 2 horizontal and 2 vertical
splits, one none, and pointers to 4 sub pc_tree nodes corresponding
to split. It also includes a pointer to the current chosen partitioning.This replaces code that held an index for every level in the pick
modes array including : sb_index, mb_index,
b_index, ab_index.These were used as stateful indexes that pointed to the current pick mode
contexts you had at each level stored in the following arraysarray ab4x4_context[][][],
sb8x4_context[][][], sb4x8_context[][][], sb8x8_context[][][],
sb8x16_context[][][], sb16x8_context[][][], mb_context[][], sb32x16[][],
sb16x32[], sb32_context[], sb32x64_context[], sb64x32_context[],
sb64_contextand the partitioning that had been stored in the following :
b_partitioning, mb_partitioning, sb_partitioning, and sb64_partitioning.Prior to this patch before doing an encode you had to set the appropriate
index for your block size ( switch statement), update it ( up to 3
lookups for the index array value) and then make your call into a recursive
function at which point you'd have to call get_context which then
had to do a switch statement based on the blocksize, and then up to 3
lookups based upon the block size to find the context to use.With the new code the context for the block size is passed around directly
avoiding the extraneous switch statements and multi dimensional array
look ups that were listed above. At any level in the search all of the
contexts are local to the pc_tree you are working on (in ?).In addition in most places code that used to call sub functions and
then check if the block size was 4x4 and index was > 0 and return
now don't preferring instead to call the right none function on the inside.Change-Id : I06e39318269d9af2ce37961b3f95e181b57f5ed9
-
php rename of ffmpeg deleted/reduced my video files to 20Kb
29 octobre 2018, par ax.falconI’m not sure what I did but somehow when I ran my code it deleted my video files, that is, it reduced each video file to a mere 20-40Kb.
I’m using a directory tree iterator to go through the selected folder and iterate all the files and subfolders in there, with commands for each. I’m only doing the files at this stage, and the code simply
- renames the video file so that it has no spaces in it’s name
- extracts a thumbnail using ffmpeg and places it in the videos directory
- inserts data in to database for displaying on a website.
Now I was able to use it once, and it worked save for 2 video files that I had been using for testing. For some reason those files were deleted. I tried running it again and it deleted all the videos.
What might be the problem ?
$mysqli = new mysqli("localhost", "refit_2_admin", "asd123", "refit_2");
if($mysqli->connect_error)
{
exit('Error db');
}
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli->set_charset("utf8mb4");
$_SESSION['mysqli'] = $mysqli;
// DIRECTORY
$dir = 'videos';
$it = new RecursiveTreeIterator(new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS));
foreach($it as $path => $branch)
{
if(is_dir($path)) // if is a directory
{
// echo something
}
if(is_file($path)) // if is a file
{
$schism = pathinfo($path);
$string = str_replace(' ', '_', $schism['filename']);
//$string = str_replace($replace, $with, $string);
rename($path, $dir.'\\'.$string.'.mp4');
$ffmpeg = 'ffmpeg.exe';
$video = dirname(__FILE__) . '\\'.$dir.'\\'.$string.'.mp4';
//echo ''.$video.'<br />';
$image = dirname(__FILE__) . '\\'.$dir.'\\'.$string.'.jpg';
//echo ''.$image.'<br />';
$second = 1;
/*$cmd = "$ffmpeg -i $video 2>&1";
if (preg_match('/Duration: ((\d+):(\d+):(\d+))/s', `$cmd`, $time)) {
$total = ($time[2] * 3600) + ($time[3] * 60) + $time[4];
$second = rand(1, ($total - 1));
}*/
$cmd = "$ffmpeg -i $video -deinterlace -an -ss $second -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg $image 2>&1";
$return = `$cmd`;
$video_title = substr($schism['filename'], 0, -5);
$video_filename = $schism['filename'].'.mp4';
$video_thumbnail = $schism['filename'].'.jpg';
$video_include = basename(__DIR__);
// Insert
$stmt = $mysqli->prepare("INSERT INTO videos (video_title, video_filename, video_include, video_tags, video_thumbnail) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("sssss", $video_title, $video_filename, $dir, $video_title, $video_thumbnail);
$stmt->execute();
$stmt->close();
}
}