
Recherche avancée
Autres articles (58)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir -
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...)
Sur d’autres sites (15639)
-
Use C# to converting apng to webm with ffmpeg from pipe input and output
30 novembre 2022, par martin wangI was using ffmpeg to convert Line sticker from apng file to webm file.
And the result is weird, some of them was converted successed and some of them failed.
not sure what happend with these failed convert.


Here is my c# code to convert Line sticker to webm,
and I use CliWrap to run ffmpeg command line.


async Task Main()
{

 var downloadUrl = @"http://dl.stickershop.LINE.naver.jp/products/0/0/1/23303/iphone/stickerpack@2x.zip";
 var arg = @$"-i pipe:.png -vf scale=512:512:force_original_aspect_ratio=decrease:flags=lanczos -pix_fmt yuva420p -c:v libvpx-vp9 -cpu-used 5 -minrate 50k -b:v 350k -maxrate 450k -to 00:00:02.900 -an -y -f webm pipe:1";

 var errorCount = 0;
 try
 {
 using (var hc = new HttpClient())
 {
 var imgsZip = await hc.GetStreamAsync(downloadUrl);

 using (ZipArchive zipFile = new ZipArchive(imgsZip))
 {
 var files = zipFile.Entries.Where(entry => Regex.IsMatch(entry.FullName, @"animation@2x\/\d+\@2x.png"));
 foreach (var entry in files)
 {
 try
 {
 using (var fileStream = File.Create(Path.Combine("D:", "Projects", "ffmpeg", "Temp", $"{Path.GetFileNameWithoutExtension(entry.Name)}.webm")))
 using (var pngFileStream = File.Create(Path.Combine("D:", "Projects", "ffmpeg", "Temp", $"{entry.Name}")))
 using (var entryStream = entry.Open())
 using (MemoryStream ms = new MemoryStream())
 {
 entry.Open().CopyTo(pngFileStream);

 var result = await Cli.Wrap("ffmpeg")
 .WithArguments(arg)
 .WithStandardInputPipe(PipeSource.FromStream(entryStream))
 .WithStandardOutputPipe(PipeTarget.ToStream(ms))
 .WithStandardErrorPipe(PipeTarget.ToFile(Path.Combine("D:", "Projects", "ffmpeg", "Temp", $"{Path.GetFileNameWithoutExtension(entry.Name)}Info.txt")))
 .WithValidation(CommandResultValidation.ZeroExitCode)
 .ExecuteAsync();
 ms.Seek(0, SeekOrigin.Begin);
 ms.WriteTo(fileStream);
 }
 }
 catch (Exception ex)
 {
 entry.FullName.Dump();
 ex.Dump();
 errorCount++;
 }
 }
 }

 }
 }
 catch (Exception ex)
 {
 ex.Dump();
 }
 $"Error Count:{errorCount.Dump()}".Dump();

}



This is the failed convert file's error information from ffmpeg :




And the successed convert file from ffmpeg infromation :



It's strange when I was manually converted these failed convert file from command line, and it will be converted successed.



The question is the resource of images are all the same apng file,
so I just can't understan why some of files will convert failed from my c# code
but also when I manually use command line will be converted successed ?



I have written same exampe from C# to Python...
and here is python code :


from io import BytesIO
import os
import re
import subprocess
import zipfile

import requests


downloadUrl = "http://dl.stickershop.LINE.naver.jp/products/0/0/1/23303/iphone/stickerpack@2x.zip"
args = [
 'ffmpeg',
 '-i', 'pipe:',
 '-vf', 'scale=512:512:force_original_aspect_ratio=decrease:flags=lanczos',
 '-pix_fmt', 'yuva420p',
 '-c:v', 'libvpx-vp9',
 '-cpu-used', '5',
 '-minrate', '50k',
 '-b:v', '350k',
 '-maxrate', '450k', '-to', '00:00:02.900', '-an', '-y', '-f', 'webm', 'pipe:1'
]


imgsZip = requests.get(downloadUrl)
with zipfile.ZipFile(BytesIO(imgsZip.content)) as archive:
 files = [file for file in archive.infolist() if re.match(
 "animation@2x\/\d+\@2x.png", file.filename)]
 for entry in files:
 fileName = entry.filename.replace(
 "animation@2x/", "").replace(".png", "")
 rootPath = 'D:\\' + os.path.join("Projects", "ffmpeg", "Temp")
 # original file
 apngFile = os.path.join(rootPath, fileName+'.png')
 # output file
 webmFile = os.path.join(rootPath, fileName+'.webm')
 # output info
 infoFile = os.path.join(rootPath, fileName+'info.txt')

 with archive.open(entry) as file, open(apngFile, 'wb') as output_apng, open(webmFile, 'wb') as output_webm, open(infoFile, 'wb') as output_info:
 p = subprocess.Popen(args, stdin=subprocess.PIPE,
 stdout=subprocess.PIPE, stderr=output_info)
 outputBytes = p.communicate(input=file.read())[0]

 output_webm.write(outputBytes)
 file.seek(0)
 output_apng.write(file.read())




And you can try it,the result will be the as same as C#.


-
iOS SDK avcodec_decode_video Optimization
6 août 2013, par Johny CageI've recently started a project that relies on streaming FLV directly to an iOS device. As most famous i went with ffmpeg (and an iOS wrapper - kxmovie). To my surprise iPhone 4 is incapable of playing even SD low-bitrate FLV videos. The current implementation i'm using is decoding the video/audio/sub frames in dispatch_async while loop and copies the YUV frame data to a object, where the object is parsed to 3 textures - Y/U/V (in case of RGB color space - just parse the data) and rendered on screen. After much trial and error, i've decided to kill the whole rendering pipeline and leave only the avcodec_decode_video2 function to run. Surprisingly the FPS did not improve and videos are still unplayable.
My question is : What can i do to improve the performance of avcodec_decode_video2 ?
Note :
I've tried a few commercial apps and they play the same file perfectly fine with no more than 50-60% cpu usage.The library is based off the 1.2 branch and this is are the build args :
'--arch=arm',
'--cpu=cortex-a8',
'--enable-pic',
"--extra-cflags='-arch armv7'",
"--extra-ldflags='-arch armv7'",
"--extra-cflags='-mfpu=neon -mfloat-abi=softfp -mvectorize-with-neon-quad'",
'--enable-neon',
'--enable-optimizations',
'--disable-debug',
'--disable-armv5te',
'--disable-armv6',
'--disable-armv6t2',
'--enable-small',
'--disable-ffmpeg',
'--disable-ffplay',
'--disable-ffserver',
'--disable-ffprobe',
'--disable-doc',
'--disable-bzlib',
'--target-os=darwin',
'--enable-cross-compile',
#'--enable-nonfree',
'--enable-gpl',
'--enable-version3',And according to Instruments the following functions take about 30% CPU usage each :
Running Time Self Symbol Name
37023.9ms 32.3% 13874,8 ff_h264_decode_mb_cabac
34626.2ms 30.2% 9194,7 loop_filter
29430.0ms 25.6% 173,8 ff_h264_hl_decode_mb -
Revision 109790 : - Suite à un problème de sécu concernant facteur, je monte la version ...
3 avril 2018, par spip.franck@… — LogSuite à un problème de sécu concernant facteur, je monte la version mini des necessites pour réduire le risque que les gens aient une version de facteur à risque.
Je monte aussi la version mini des utilises, ce qui aura pour incidence une désactivation de facteur si les gens ne le mettent pas également à jour ( à voir si c’est une bonne idée), je pars du principe que le mieux, c’est une désactivation, plutôt que d’avoir un plug à problème
A savoir que je n’ai fait la mise à jour que pour la version de facteur qui est pour spip 3.0.0 mini
https://zone.spip.org/trac/spip-zone/changeset/109788