
Recherche avancée
Médias (1)
-
Carte de Schillerkiez
13 mai 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Texte
Autres articles (35)
-
Supporting all media types
13 avril 2011, parUnlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)
-
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 (...) -
De l’upload à la vidéo finale [version standalone]
31 janvier 2010, parLe chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
Upload et récupération d’informations de la vidéo source
Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)
Sur d’autres sites (3599)
-
lavu/x86 : add FFT assembly
10 avril 2021, par Lynnelavu/x86 : add FFT assembly
This commit adds a pure x86 assembly SIMD version of the FFT in libavutil/tx.
The design of this pure assembly FFT is pretty unconventional.On the lowest level, instead of splitting the complex numbers into
real and imaginary parts, we keep complex numbers together but split
them in terms of parity. This saves a number of shuffles in each transform,
but more importantly, it splits each transform into two independent
paths, which we process using separate registers in parallel.
This allows us to keep all units saturated and lets us use all available
registers to avoid dependencies.
Moreover, it allows us to double the granularity of our per-load permutation,
skipping many expensive lookups and allowing us to use just 4 loads per register,
rather than 8, or in case FMA3 (and by extension, AVX2), use the vgatherdpd
instruction, which is at least as fast as 4 separate loads on old hardware,
and quite a bit faster on modern CPUs).Higher up, we go for a bottom-up construction of large transforms, foregoing
the traditional per-transform call-return recursion chains. Instead, we always
start at the bottom-most basis transform (in this case, a 32-point transform),
and continue constructing larger and larger transforms until we return to the
top-most transform.
This way, we only touch the stack 3 times per a complete target transform :
once for the 1/2 length transform and two times for the 1/4 length transform.The combination algorithm we use is a standard Split-Radix algorithm,
as used in our C code. Although a version with less operations exists
(Steven G. Johnson and Matteo Frigo's "A modified split-radix FFT with fewer
arithmetic operations", IEEE Trans. Signal Process. 55 (1), 111–119 (2007),
which is the one FFTW uses), it only has 2% less operations and requires at least 4x
the binary code (due to it needing 4 different paths to do a single transform).
That version also has other issues which prevent it from being implemented
with SIMD code as efficiently, which makes it lose the marginal gains it offered,
and cannot be performed bottom-up, requiring many recursive call-return chains,
whose overhead adds up.We go through a lot of effort to minimize load/stores by keeping as much in
registers in between construcring transforms. This saves us around 32 cycles,
on paper, but in reality a lot more due to load/store aliasing (a load from a
memory location cannot be issued while there's a store pending, and there are
only so many (2 for Zen 3) load/store units in a CPU).
Also, we interleave coefficients during the last stage to save on a store+load
per register.Each of the smallest, basis transforms (4, 8 and 16-point in our case)
has been extremely optimized. Our 8-point transform is barely 20 instructions
in total, beating our old implementation 8-point transform by 1 instruction.
Our 2x8-point transform is 23 instructions, beating our old implementation by
6 instruction and needing 50% less cycles. Our 16-point transform's combination
code takes slightly more instructions than our old implementation, but makes up
for it by requiring a lot less arithmetic operations.Overall, the transform was optimized for the timings of Zen 3, which at the
time of writing has the most IPC from all documented CPUs. Shuffles were
preferred over arithmetic operations due to their 1/0.5 latency/throughput.On average, this code is 30% faster than our old libavcodec implementation.
It's able to trade blows with the previously-untouchable FFTW on small transforms,
and due to its tiny size and better prediction, outdoes FFTW on larger transforms
by 11% on the largest currently supported size. -
Encoder (codec png) not found for output stream #0:0 [duplicate]
7 juin 2016, par Anubhav DhawanThis question already has an answer here :
-
ffmpeg & png watermark issue
2 answers
I’m trying to create a NodeJS app that converts a video into a GIF image.
I’m using node-gify plugin for this purpose, which uses FFmpeg and GraphicsMagick.
Here’s my sample code :
var gify = require('./');
var http = require('http');
var fs = require('fs');
var opts = {
height: 300,
rate: 10
};
console.time('convert');
gify('out.mp4', 'out.gif', opts, function(err) {
if (err) throw err;
console.timeEnd('convert');
var s = fs.statSync('out.gif');
console.log('size: %smb', s.size / 1024 / 1024 | 0);
});And here’s my console error :
> gify@0.2.0 start /home/daffodil/repos/node-gify-master
> node example.js
/home/daffodil/repos/node-gify-master/example.js:24
if (err) throw err;
^
Error: Command failed: /bin/sh -c ffmpeg -i out.mp4 -filter:v scale=-1:300 -r 10 /tmp/IP5OXJZELd/%04d.png
ffmpeg version 3.0.2 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04)
configuration: --disable-yasm
libavutil 55. 17.103 / 55. 17.103
libavcodec 57. 24.102 / 57. 24.102
libavformat 57. 25.100 / 57. 25.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 31.100 / 6. 31.100
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out.mp4':
Metadata:
major_brand : mp42
minor_version : 1
compatible_brands: mp42mp41
creation_time : 2005-02-25 02:35:57
Duration: 00:01:10.00, start: 0.000000, bitrate: 106 kb/s
Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 8000 Hz, stereo, fltp, 19 kb/s (default)
Metadata:
creation_time : 2005-02-25 02:35:57
handler_name : Apple Sound Media Handler
Stream #0:1(eng): Video: mpeg4 (Advanced Simple Profile) (mp4v / 0x7634706D), yuv420p, 192x242 [SAR 1:1 DAR 96:121], 76 kb/s, 15 fps, 15 tbr, 600 tbn, 1k tbc (default)
Metadata:
creation_time : 2005-02-25 02:35:57
handler_name : Apple Video Media Handler
Stream #0:2(eng): Data: none (rtp / 0x20707472), 4 kb/s (default)
Metadata:
creation_time : 2005-02-25 02:35:57
handler_name : hint media handler
Stream #0:3(eng): Data: none (rtp / 0x20707472), 3 kb/s (default)
Metadata:
creation_time : 2005-02-25 02:35:57
handler_name : hint media handler
Output #0, image2, to '/tmp/IP5OXJZELd/%04d.png':
Metadata:
major_brand : mp42
minor_version : 1
compatible_brands: mp42mp41
Stream #0:0(eng): Video: png, none, q=2-31, 128 kb/s (default)
Metadata:
creation_time : 2005-02-25 02:35:57
handler_name : Apple Video Media Handler
Stream mapping:
Stream #0:1 -> #0:0 (mpeg4 (native) -> ? (?))
Encoder (codec png) not found for output stream #0:0
at ChildProcess.exithandler (child_process.js:213:12)
at emitTwo (events.js:100:13)
at ChildProcess.emit (events.js:185:7)
at maybeClose (internal/child_process.js:827:16)
at Socket.<anonymous> (internal/child_process.js:319:11)
at emitOne (events.js:90:13)
at Socket.emit (events.js:182:7)
at Pipe._onclose (net.js:471:12)
</anonymous>PS : I had a couple of problems installing FFmpeg on my Ubuntu 14.04.
- First, FFmpeg is removed from Ubuntu 14.04 (legal issues AFAIK). But I managed to
apt-get
it through this. - Second, when I tried to
./configure
(as mentioned in its README.md), I got this error -yasm/nasm not found or too old. Use --disable-yasm for a crippled build.
. So I used./configure --disable-yasm
instead, and it (somehow) worked.
Update #1
After read this log a couple of times, I managed to produce a sample GIF from my mp4 file, by changing the command, which
example.js
tries to run :From
ffmpeg -i out.mp4 -filter:v scale=-1:300 -r 10 /tmp/Lz43nx6wv1/%04d.png
To
ffmpeg -i out.mp4 -filter:v scale=-1:300 -r 10 out.gif
But it’s still using command line, I need to do this by code.
So I dived into the code and found that this wrong url is coming from the plugin’s index.js :
...
// tmpfile(s)
var id = uid(10);
var dir = path.resolve('/tmp/' + id);
var tmp = path.join(dir, '/%04d.png');
...Is this an issue with the plugin, or am I doing something wrong here ?
In any case, please put the correct stub here, because I don’t want to touch this part unless I know what I’m doing ?Update #2
Now I installed zlib1g-dev, and then reinstalled both FFmpeg and graphicsMagick, and now I see this error :
gm convert: No decode delegate for this image format (/tmp/ZQbEAynAcf/0702.png).
Thanks in advance :)
-
ffmpeg & png watermark issue
-
A/B Testing Platform for Piwik Analytics
10 novembre 2016, par InnoCraft — Plugins, Press ReleasesWe are very excited to launch A/B Testing – a powerful new product designed to help you maximise your success and increase your conversions.
What is A/B Testing and why is it so important ?
Experimenting with A/B Testing is an important marketing strategy that goes a long way in maximising your conversions.
With A/B Testing you can start improving your conversions and sales in your existing website or app by creating different versions of a web page or mobile app screen to find out how to modify your website to optimize business success.
How does A/B Testing work ?
To explain how A/B Testing works, let’s take an example. Imagine one of your most important landing pages has been redesigned to hopefully get more email signups. Now you need to make sure the new version is “better” than the current version, or at least does result in less conversions. To compare the performance of these two versions, you can then run an A/B test whereby the A/B testing product tells you whether the redesigned version is producing more email signups compared to the original version.
How it works is that visitors on your website during the experiment will see a randomly chosen version (variation) and A/B Testing makes sure that your users will always see the same variation for all subsequent visits. The behaviour and goals converted by each user is measured continuously by Piwik A/B Testing. The beautifully designed and easy to use dashboard shows how each variation impacts your success metrics such as conversions, sales or page views.
When the A/B test is complete, you will then know which is the winning version getting you closer to reaching your goals ! A/B Testing includes an advanced statistical analysis engine to provide a reliable indicator of which of your versions is actually improving your bottom line.
Examples of successful A/B tests
Below are a just a few interesting A/B tests results from the article 7 Dead-Simple A/B Tests You Should Run on Your Homepage (HubSpot).
Increase click on CTA button by 21%
We actually conducted an A/B test on button color and found that changing the CTA button from green to red increased clicks by 21%. In the world of website optimization, that’s huge !
47.7% more clicks on the navigation bar
An A/B test comparing the phrases used on the navigation bar discovered that the menu link “How It Works” earned 47.7% more clicks than “Why Use Us.”
5% more conversions using a different image
Highrise, a small business CRM, A/B tested their website’s imagery by featuring two different people – Jocelyn on the left, and Michael on the right. They found Michael helped improve conversions by almost 5%.
Changing the headline to increase conversions by 38%
WhichTestWon ran an A/B test on AwayFind’s homepage and found that Version B increased signups by 38%. This could be because the headline is more concise and the subheader includes bolded words to clearly communicate the product’s value
Where do I start testing ?
Your testing strategy is tied to your overall business strategy. What do you want people to achieve on your website ? What are the goals that you want your users to convert ? What are your one or two Key Performance Indicators, and what are your targets for these KPIs ?
When you start thinking of improving your targets you can begin by looking at the most important parts that can be improved :
- What are your call to actions ?
- Which are your most popular pages, and landing pages ?
- What elements of my website is above the fold and can be seen by all visitors within a few seconds ?
How do I get A/B Testing ?
All premium plugins come with our 14 day money back guarantee and 1-click installation & updates. Customers get all product updates for free.
A/B Testing is available for purchase and download on the Marketplace.
If you are not using Piwik yet, you can also signup for a free trial of Piwik Cloud (including A/B Testing !).
Have a question about this product ? Get in touch.