
Recherche avancée
Médias (91)
-
GetID3 - Boutons supplémentaires
9 avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
-
Core Media Video
4 avril 2013, par
Mis à jour : Juin 2013
Langue : français
Type : Video
-
The pirate bay depuis la Belgique
1er avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
-
Bug de détection d’ogg
22 mars 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Video
-
Exemple de boutons d’action pour une collection collaborative
27 février 2013, par
Mis à jour : Mars 2013
Langue : français
Type : Image
-
Exemple de boutons d’action pour une collection personnelle
27 février 2013, par
Mis à jour : Février 2013
Langue : English
Type : Image
Autres articles (32)
-
Emballe Médias : Mettre en ligne simplement des documents
29 octobre 2010, parLe plugin emballe médias a été développé principalement pour la distribution mediaSPIP mais est également utilisé dans d’autres projets proches comme géodiversité par exemple. Plugins nécessaires et compatibles
Pour fonctionner ce plugin nécessite que d’autres plugins soient installés : CFG Saisies SPIP Bonux Diogène swfupload jqueryui
D’autres plugins peuvent être utilisés en complément afin d’améliorer ses capacités : Ancres douces Légendes photo_infos spipmotion (...) -
Le plugin : Podcasts.
14 juillet 2010, parLe problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
Types de fichiers supportés dans les flux
Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...) -
Support de tous types de médias
10 avril 2011Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)
Sur d’autres sites (6203)
-
Anomalie #3523 : Gestion des plugins avec spip 3.0.20
5 août 2015, par Gilles VINCENTen ajoutant la directive
opcache.validate_timestamps=0
à ma config php, comme conseillé dans http://wiki.mikejung.biz/PHP_OPcache pour un serveur en production, la page de gestion des plugins refonctionne à nouveau correctement. De plus, la valeur
opcache.revalidate_freq=60
(valeur par défaut fournie lors de l’install) est vraiment longue.
Si je commente cette ligne dans le fichier de config, le phpinfo() indique une valeur plus raisonnable de 2 seulement.
Je pense que le chargement méga long venait de cette constante.La différence de comportement avec la config "pour développement" entre une 3.0.19 et une 3.0.20 reste encore surprenante.
Si j’ai le temps, je creuserai dans une semaine à mon retour de vacance, car tout le monde ne peut as jouer avec ces paramètres du serveur... :/ -
How to parallelize this for loop for rapidly converting YUV422 to RGB888 ?
16 avril 2015, par vineetI am using v4l2 api to grab images from a Microsoft Lifecam and then transferring these images over TCP to a remote computer. I am also encoding the video frames into a MPEG2VIDEO using ffmpeg API. These recorded videos play too fast which is probably because not enough frames have been captured and due to incorrect FPS settings.
The following is the code which converts a YUV422 source to a RGB888 image. This code fragment is the bottleneck in my code as it takes nearly 100 - 150 ms to execute which means I can’t log more than 6 - 10 FPS at 1280 x 720 resolution. The CPU usage is 100% as well.
for (int line = 0; line < image_height; line++) {
for (int column = 0; column < image_width; column++) {
*dst++ = CLAMP((double)*py + 1.402*((double)*pv - 128.0)); // R - first byte
*dst++ = CLAMP((double)*py - 0.344*((double)*pu - 128.0) - 0.714*((double)*pv - 128.0)); // G - next byte
*dst++ = CLAMP((double)*py + 1.772*((double)*pu - 128.0)); // B - next byte
vid_frame->data[0][line * frame->linesize[0] + column] = *py;
// increment py, pu, pv here
}’dst’ is then compressed as jpeg and sent over TCP and ’vid_frame’ is saved to the disk.
How can I make this code fragment faster so that I can get atleast 30 FPS at 1280x720 resolution as compared to the present 5-6 FPS ?
I’ve tried parallelizing the for loop across three threads using p_thread, processing one third of the rows in each thread.
for (int line = 0; line < image_height/3; line++) // thread 1
for (int line = image_height/3; line < 2*image_height/3; line++) // thread 2
for (int line = 2*image_height/3; line < image_height; line++) // thread 3This gave me only a minor improvement of 20-30 milliseconds per frame.
What would be the best way to parallelize such loops ? Can I use GPU computing or something like OpenMP ? Say spwaning some 100 threads to do the calculations ?I also noticed higher frame rates with my laptop webcam as compared to the Microsoft USB Lifecam.
Here are other details :
- Ubuntu 12.04, ffmpeg 2.6
- AMG-A8 quad core processor with 6GB RAM
- Encoder settings :
- codec : AV_CODEC_ID_MPEG2VIDEO
- bitrate : 4000000
- time_base : (AVRational)1, 20
- pix_fmt : AV_PIX_FMT_YUV420P
- gop : 10
- max_b_frames : 1
-
xabe.ffmpeg not working in azure app service
28 décembre 2020, par Sripathi RajaI have a .net core application which generates video thumbnails for uploaded videos. I am using xabe.ffmpeg for this . The code runs fine in the local system and Iam able to generate the thumbnails . I have containerized this application and pushed it to azure app service . But when the code is deployed on azure app service its throws an error . I have placed the ffmpeg.exe ,ffprobe.exe , ffplay.exe inside a folder ffmpeg in wwwroot folder .
the app service logs give this error


the first line is the path : /app/wwwroot/ffmpeg


2020-12-25T14:34:01.347103909Z /app/wwwroot/ffmpeg
2020-12-25T14:34:01.443016709Z [41m[30mfail[39m[22m[49m : Microsoft.AspNetCore.Server.Kestrel[13]
2020-12-25T14:34:01.443066009Z Connection id "0HM58S8AE014U", Request id "0HM58S8AE014U:00000002" : An unhandled exception was thrown by the application.
2020-12-25T14:34:01.456821709Z System.ComponentModel.Win32Exception (2) : No such file or directory
2020-12-25T14:34:01.462537109Z at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
2020-12-25T14:34:01.462555709Z at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
2020-12-25T14:34:01.462560609Z at System.Diagnostics.Process.Start()
2020-12-25T14:34:01.463739309Z at Xabe.FFmpeg.FFmpeg.RunProcess(String args, String processPath, Nullable
1 priority, Boolean standardInput, Boolean standardOutput, Boolean standardError) 2020-12-25T14:34:01.463755809Z at Xabe.FFmpeg.FFprobeWrapper.<>c__DisplayClass9_0.<runprocess>b__0() 2020-12-25T14:34:01.463761809Z at System.Threading.Tasks.Task</runprocess>
1.InnerInvoke()
2020-12-25T14:34:01.463766309Z at System.Threading.Tasks.Task.<>c.<.cctor>b__274_0(Object obj)
2020-12-25T14:34:01.463781109Z at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
2020-12-25T14:34:01.463786509Z --- End of stack trace from previous location where exception was thrown ---
2020-12-25T14:34:01.463790909Z at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
2020-12-25T14:34:01.463795509Z at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
2020-12-25T14:34:01.463800009Z --- End of stack trace from previous location where exception was thrown ---
2020-12-25T14:34:01.463813709Z at Xabe.FFmpeg.FFprobeWrapper.RunProcess(String args, CancellationToken cancellationToken)
2020-12-25T14:34:01.463818109Z at Xabe.FFmpeg.FFprobeWrapper.GetStreams(String videoPath, CancellationToken cancellationToken)
2020-12-25T14:34:01.463821909Z at Xabe.FFmpeg.FFprobeWrapper.SetProperties(MediaInfo mediaInfo, CancellationToken cancellationToken)
2020-12-25T14:34:01.463825509Z at Xabe.FFmpeg.MediaInfo.Get(String filePath, CancellationToken cancellationToken)
2020-12-25T14:34:01.463829109Z at Xabe.FFmpeg.MediaInfo.Get(String filePath)
2020-12-25T14:34:01.463832609Z at Xabe.FFmpeg.FFmpeg.GetMediaInfo(String fileName)
2020-12-25T14:34:01.467009509Z at root2webAPI.Controllers.AzureStorageControllers.BlobExplorerController.GetVideoThumbnailAsync(IFormFile file, Int32 frameTarget) in /src/root2webAPI/Controllers/AzureStorageControllers/BlobExplorerController.cs:line 271
2020-12-25T14:34:01.467023809Z at root2webAPI.Controllers.AzureStorageControllers.BlobExplorerController.UploadMediaBlob(IFormFile file, String parentId) in /src/root2webAPI/Controllers/AzureStorageControllers/BlobExplorerController.cs:line 96
2020-12-25T14:34:01.467028709Z at lambda_method(Closure , Object )
2020-12-25T14:34:01.467032109Z at Microsoft.Extensions.Internal.ObjectMethodExecutorAwaitable.Awaiter.GetResult()
2020-12-25T14:34:01.467035909Z at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
2020-12-25T14:34:01.467039409Z at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
2020-12-25T14:34:01.467043209Z at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
2020-12-25T14:34:01.467055709Z at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
2020-12-25T14:34:01.467060609Z at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
2020-12-25T14:34:01.467067409Z at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
2020-12-25T14:34:01.467071609Z at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
2020-12-25T14:34:01.467075209Z at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
2020-12-25T14:34:01.467078709Z at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
2020-12-25T14:34:01.467089009Z at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
2020-12-25T14:34:01.467093409Z at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
2020-12-25T14:34:01.467096909Z at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
2020-12-25T14:34:01.467100509Z at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
2020-12-25T14:34:01.467103809Z at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext]

here is my relevant .net application code


private async Task<mediametadata> GetVideoThumbnailAsync(IFormFile file,int frameTarget)
 {
 var fileName = file.FileName;
 var filePath = Path.Combine(_rootPath, "videos", fileName);
 var fileExtension = Path.GetExtension(filePath);
 
 // the xabe wrapper works with only mp4 extension to create thumbnail , if the file is any other format first convert it to
 //the mp4 format and then goahead with creating the thumbnail. 
 var thumbnailImageName = fileName.Replace(fileExtension, ".jpg");
 var thumbnailImagePath = Path.Combine(_rootPath, "thumbnails", thumbnailImageName);
 
 using (Stream fileStream = new FileStream(filePath, FileMode.Create)) {
 
 await file.CopyToAsync(fileStream);
 }
 Console.WriteLine(Path.Combine(_rootPath,"ffmpeg"));
 FFmpeg.SetExecutablesPath(Path.Combine(_rootPath,"ffmpeg"));
 IMediaInfo mediaInfo = await FFmpeg.GetMediaInfo(filePath);
 var videoDuration = mediaInfo.VideoStreams.First().Duration;
 IConversion conversion = await FFmpeg.Conversions.FromSnippet.Snapshot(filePath, thumbnailImagePath , TimeSpan.FromSeconds(frameTarget));
 IConversionResult result = await conversion.Start();
 MediaMetadata media = new MediaMetadata();
 media.DurationSeconds=Convert.ToInt32(videoDuration.TotalMilliseconds);
 // media.DurationSeconds=10;
 media.ThumbnailImagePath= thumbnailImagePath;
 return media;
 
 }
</mediametadata>


could you help me out with this ..many thanks