
Recherche avancée
Médias (91)
-
MediaSPIP Simple : futur thème graphique par défaut ?
26 septembre 2013, par
Mis à jour : Octobre 2013
Langue : français
Type : Video
-
avec chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
sans chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
config chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
SPIP - plugins - embed code - Exemple
2 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
Autres articles (21)
-
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. -
Other interesting software
13 avril 2011, parWe don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
We don’t know them, we didn’t try them, but you can take a peek.
Videopress
Website : http://videopress.com/
License : GNU/GPL v2
Source code : (...) -
Les statuts des instances de mutualisation
13 mars 2010, parPour des raisons de compatibilité générale du plugin de gestion de mutualisations avec les fonctions originales de SPIP, les statuts des instances sont les mêmes que pour tout autre objets (articles...), seuls leurs noms dans l’interface change quelque peu.
Les différents statuts possibles sont : prepa (demandé) qui correspond à une instance demandée par un utilisateur. Si le site a déjà été créé par le passé, il est passé en mode désactivé. publie (validé) qui correspond à une instance validée par un (...)
Sur d’autres sites (4410)
-
Java JAR file runs on local machine but missing file on others
22 avril 2022, par john pearThe JAR file consists of the ffmpeg.exe file and it can run normally on my machine without any problems. However, if I try to run it on another computer it would tell me that
java.io.IOException: Cannot run program "ffmpeg.exe": CreateProcess error=2,The system cannot find the file specified
from the stacktrace. The way I imported it was

FFMpeg ffmpeg = new FFMpeg("ffmpeg.exe"); //in res folder

...
//ffmpeg class
public FFMPEG(String ffmepgEXE) {
 this.ffmepgEXE = ffmepgEXE;
}



-
local.ERROR : ffmpeg failed to execute command
20 août 2024, par AMNA IQBALI am trying to draw points on a video.


The Video is 12 seconds long and for one second there are 17 data points which needs to be plotted on the video of one frame (1 second).

It works for 6 seconds but not for 12 seconds.

Why it's not working for longer videos ? Is there any limitations of commands in ffmpeg ?


public function overlayCoordinates(Request $request)
{
Log::info('Received request to overlay coordinates on video.');

 set_time_limit(600); // 600 seconds = 10 minutes
 try {

 $request->validate([
 'video' => 'required|file|mimes:mp4,avi,mkv,webm|max:102400', // Video max size 100MB
 'coordinates' => 'required|file|mimes:txt|max:5120', // Coordinates text file max size 5MB
 ]);

 $videoFile = $request->file('video');
 $coordinatesFile = $request->file('coordinates');

 $videoFilePath = $videoFile->getRealPath();
 $videoFileName = $videoFile->getClientOriginalName();

 // Move the video file to the desired location if needed
 $storedVideoPath = $videoFile->storeAs('public/videos', $videoFileName);

 // Open the video file using Laravel FFmpeg
 $media = FFMpeg::fromDisk('public')->open('videos/' . $videoFileName);
 $duration = $media->getDurationInSeconds();

 Log::info('Duration: ' . $duration);

 $coordinatesJson = file_get_contents($coordinatesFile->getPathname());
 $coordinatesArray = json_decode($coordinatesJson, true);

 $frameRate = 30; // Assuming a frame rate of 30 fps
 $visibilityDuration = 0.5; // Set duration to 0.5 second

 for ($currentTime = 0; $currentTime < 7; $currentTime++) {
 $filterString = ""; // Reset filter string for each frame
 $frameIndex = intval($currentTime * $frameRate); // Convert current time to an index

 if (isset($coordinatesArray['graphics'][$frameIndex])) {
 // Loop through the first 5 keypoints (or fewer if not available)
 $keypoints = $coordinatesArray['graphics'][$frameIndex]['kpts'];
 for ($i = 0; $i < min(12, count($keypoints)); $i++) {
 $keypoint = $keypoints[$i];

 $x = $keypoint['p'][0] * 1920; // Scale x coordinate to video width
 $y = $keypoint['p'][1] * 1080; // Scale y coordinate to video height

 $startTime = $frameIndex / $frameRate; // Calculate start time
 $endTime = $startTime + $visibilityDuration; // Set end time for 0.5 second duration

 // Add drawbox filter for the current keypoint
 $filterString .= "drawbox=x={$x}:y={$y}:w=10:h=10:color=red@0.5:t=fill:enable='between(t,{$startTime},{$endTime})',";
 }
 Log::info("Processing frame index: {$frameIndex}, Drawing first 5 keypoints.");
 }

 $filterString = rtrim($filterString, ',');
 
 // Apply the filter for the current frame
 if (!empty($filterString)) {
 $media->addFilter(function ($filters) use ($filterString) {
 $filters->custom($filterString);
 });
 }
 }

 $filename = uniqid() . '_overlayed.mp4';
 $destinationPath = 'videos/' . $filename;

 $format = new \FFMpeg\Format\Video\X264('aac');
 $format->setKiloBitrate(5000) // Increase bitrate for better quality
 ->setAdditionalParameters(['-profile:v', 'high', '-preset', 'veryslow', '-crf', '18']) // High profile, very slow preset, and CRF of 18 for better quality
 ->setAudioCodec('aac')
 ->setAudioKiloBitrate(192); // Higher audio bitrate
 

 // Export the video in one pass to a specific disk and directory
 $media->export()
 ->toDisk('public')
 ->inFormat($format)
 ->save($destinationPath);

 return response()->json([
 'message' => 'Video processed successfully with overlays.',
 'path' => Storage::url($destinationPath)
 ]);
 } catch (\Exception $e) {
 Log::error('Overlay process failed: ' . $e->getMessage());
 return response()->json(['error' => 'Overlay process failed. Please check logs for details.'], 500);
 }
}



-
"Relocation cannot be used against local symbol" only for one platform (x86)
10 janvier 2023, par JonasVautherinProblem


I am cross-compiling gstreamer using Meson, and it works for 3 different platforms (android-arm, android-arm64, android-x86_64) but fails for android-x86 with errors like :


ld: error: relocation R_386_32 cannot be used against local symbol; recompile with -fPIC



I can't seem to understand which component was not built with
-fPIC
, and I don't understand why this would differ between the 4 platforms. If 3 are built with-fPIC
, why would the fourth be different ?

Details


More specifically, it fails with a bunch of the following errors :


FAILED: subprojects/FFmpeg/test_avcodec_utils
/usr/i686-linux-android/bin/clang -o subprojects/FFmpeg/test_avcodec_utils subprojects/FFmpeg/test_avcodec_utils.p/libavcodec_tests_utils.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -pie -Wl,-Bsymbolic -fPIC -Wl,--start-group subprojects/FFmpeg/libavcodec-static.a subprojects/FFmpeg/libavutil.a subprojects/FFmpeg/libavutil-static.a subprojects/FFmpeg/libswresample.a subprojects/FFmpeg/libswresample-static.a -pthread -lm -lz -lz -Wl,--end-group
ld: error: relocation R_386_32 cannot be used against local symbol; recompile with -fPIC
>>> defined in subprojects/FFmpeg/libavcodec-static.a(libavcodec-static.a.p/dirac_dwt.o)
>>> referenced by x86util.asm:1315 (/work/build/android-x86/dependencies/gstreamer/gstreamer/src/gstreamer/subprojects/FFmpeg/libavutil/x86/x86util.asm:1315)
>>> libavcodec-static.a.p/dirac_dwt.o:(.text+0x9F) in archive subprojects/FFmpeg/libavcodec-static.a



I essentially run
$ meson setup --cross-file my-crossfile build .
in a Dockcross container, with some options, so nothing special there as far as I can tell.

My cross-file looks like this (similar to the other 3 that work, except for
cpu
andcpu_family
that differ) :

[constants]
cross_triple = 'i686-linux-android'
cross_root = '/usr/' + cross_triple

[properties]
pkg_config_libdir = ''

[binaries]
c = cross_root + '/bin/clang'
cpp = cross_root + '/bin/clang++'
ar = cross_root + '/bin/llvm-ar'
as = cross_root + '/bin/llvm-as'
ranlib = cross_root + '/bin/llvm-ranlib'
ld = cross_root + '/bin/ld'
strip = cross_root + '/bin/llvm-strip'
pkgconfig = 'pkg-config'

[host_machine]
system = 'android'
cpu_family = 'x86'
cpu = 'i686'
endian = 'little'