
Recherche avancée
Autres articles (61)
-
L’utiliser, en parler, le critiquer
10 avril 2011La première attitude à adopter est d’en parler, soit directement avec les personnes impliquées dans son développement, soit autour de vous pour convaincre de nouvelles personnes à l’utiliser.
Plus la communauté sera nombreuse et plus les évolutions seront rapides ...
Une liste de discussion est disponible pour tout échange entre utilisateurs. -
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 (...) -
MediaSPIP Init et Diogène : types de publications de MediaSPIP
11 novembre 2010, parÀ l’installation d’un site MediaSPIP, le plugin MediaSPIP Init réalise certaines opérations dont la principale consiste à créer quatre rubriques principales dans le site et de créer cinq templates de formulaire pour Diogène.
Ces quatre rubriques principales (aussi appelées secteurs) sont : Medias ; Sites ; Editos ; Actualités ;
Pour chacune de ces rubriques est créé un template de formulaire spécifique éponyme. Pour la rubrique "Medias" un second template "catégorie" est créé permettant d’ajouter (...)
Sur d’autres sites (7493)
-
FFMPEG equalizer clipping audio despite low volume
23 juillet 2023, par TomI'm using ffmpeg to equalise audio transferred from historic gramophone records, using standard eqs of the era.


The frequency and gain values are taken from the graphic eq settings listed on the Audacity website - https://plugins.audacityteam.org/additional-resources/eq-curves/playback-equalization-for-78-rpm-shellacs-and-early-33-lps


An example of the Blumlien300 curve here - https://2850314611-files.gitbook.io/ /files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FklCVENFte0GRy5IqVz0W%2Fuploads%2FJHS6Mv121GX1h898xy4K%2FBlumlein300_3.2.2.txt?alt=media&token=8d04df05-366d-47f8-8c82-149fa5eda59a


The audio file I'm testing with has a digital peak of -35db, the highest gain value applied on this eq is 17db. When I run the ffmpeg command though, it reports the audio is clipping and the result is a horribly distorted recording.


Can anyone advise why this is happening ? I run the same file through the same eq settings in Audacity and the result is as expected.


set eq="equalizer=f=22050:g=-0.4,equalizer=f=21203.720228928225:g=-0.4,equalizer=f=20389.920705063967:g=-0.4,equalizer=f=19607.354835383569:g=-0.4,equalizer=f=18854.823871147240:g=-0.4,equalizer=f=18131.175071633737:g=-0.4,equalizer=f=17435.299938351014:g=-0.4,equalizer=f=16766.132517017904:g=-0.4,equalizer=f=16122.647764715837:g=-0.4,equalizer=f=15503.859979709296:g=-0.4,equalizer=f=14908.821291529812:g=-0.4,equalizer=f=14336.620209010769:g=-0.4,equalizer=f=13786.380224048187:g=-0.4,equalizer=f=13257.258468950000:g=-0.4,equalizer=f=12748.444425315412:g=-0.4,equalizer=f=12259.158682468413:g=-0.4,equalizer=f=11788.651743541806:g=-0.4,equalizer=f=11336.202877384472:g=-0.4,equalizer=f=10901.119014532051:g=-0.4,equalizer=f=10482.733685550458:g=-0.4,equalizer=f=10080.406000125797:g=-0.4,equalizer=f=9693.519665336817:g=-0.4,equalizer=f=9321.482041606178:g=-0.4,equalizer=f=8963.723234884175:g=-0.4,equalizer=f=8619.695223674737:g=-0.4,equalizer=f=8288.871019565895:g=-0.4,equalizer=f=7970.743859979441:g=-0.4,equalizer=f=7664.826431902562:g=-0.4,equalizer=f=7370.650125412990:g=-0.4,equalizer=f=7087.764315853595:g=-0.4,equalizer=f=6815.735673557399:g=-0.4,equalizer=f=6554.147500065165:g=-0.4,equalizer=f=6302.599089819104:g=-0.4,equalizer=f=6060.705116354743:g=-0.4,equalizer=f=5828.095042050793:g=-0.4,equalizer=f=5604.412550532827:g=-0.4,equalizer=f=5389.315000861326:g=-0.4,equalizer=f=5182.472902668021:g=-0.394052055589,equalizer=f=4983.569411436476:g=-0.386751590389,equalizer=f=4792.299843153906:g=-0.376185664074,equalizer=f=4608.371207590573:g=-0.362543760251,equalizer=f=4431.501759492006:g=-0.345993198097,equalizer=f=4261.420566996452:g=-0.330710126890,equalizer=f=4097.867096616487:g=-0.318503033191,equalizer=f=3940.590814149046:g=-0.309564283335,equalizer=f=3789.350800902538:g=-0.303741189604,equalizer=f=3643.915384653179:g=-0.300601888512,equalizer=f=3504.061784765236:g=-0.3,equalizer=f=3369.575770931567:g=-0.3,equalizer=f=3240.251335011708:g=-0.3,equalizer=f=3115.890375464830:g=-0.3,equalizer=f=2996.302393894170:g=-0.3,equalizer=f=2881.304203238093:g=-0.3,equalizer=f=2770.719647160795:g=-0.3,equalizer=f=2664.379330212802:g=-0.3,equalizer=f=2562.120358347913:g=-0.3,equalizer=f=2463.786089399117:g=-0.3,equalizer=f=2369.225893131248:g=-0.3,equalizer=f=2278.294920502843:g=-0.3,equalizer=f=2190.853881783698:g=-0.3,equalizer=f=2106.768833188346:g=-0.296437432785,equalizer=f=2025.910971698469:g=-0.290217913930,equalizer=f=1948.156437760116:g=-0.280922418484,equalizer=f=1873.386125553329:g=-0.268550946447,equalizer=f=1801.485500543704:g=-0.253103497820,equalizer=f=1732.344424036255:g=-0.235614749092,equalizer=f=1665.856984462975:g=-0.218076286078,equalizer=f=1601.921335145533:g=-0.200537822606,equalizer=f=1540.439538284674:g=-0.184632657170,equalizer=f=1481.317414937308:g=-0.168779161348,equalizer=f=1424.464400751469:g=-0.152925665153,equalizer=f=1369.793407238189:g=-0.137072168707,equalizer=f=1317.220688367753:g=-0.121218672255,equalizer=f=1266.665712285991:g=-0.105365175802,equalizer=f=1218.051037954117:g=-0.088396941462,equalizer=f=1171.302196523118:g=-0.070858476440,equalizer=f=1126.347577261013:g=-0.053320011417,equalizer=f=1083.118317858216:g=-0.034770724190,equalizer=f=1041.548198942992:g=-0.013200571808,equalizer=f=1001.573542645411:g=0.011445558081,equalizer=f=963.133115054414:g=0.039167665478,equalizer=f=926.168032418592:g=0.069965750383,equalizer=f=890.621670946974:g=0.103839812794,equalizer=f=856.439580071665:g=0.140789852714,equalizer=f=823.569399039473:g=0.180815870141,equalizer=f=791.960776704742:g=0.223158863450,equalizer=f=761.565294400547:g=0.266149082252,equalizer=f=732.336391770094:g=0.311823093692,equalizer=f=704.229295444710:g=0.360237839089,equalizer=f=677.200950459179:g=0.413174176689,equalizer=f=651.209954299352:g=0.471478099167,equalizer=f=626.216493481026:g=0.535493496953,equalizer=f=602.182282562909:g=0.606978871276,equalizer=f=579.070505500287:g=0.684199304160,equalizer=f=556.845759249530:g=0.767096732395,equalizer=f=535.473999537060:g=0.853776460170,equalizer=f=514.922488709709:g=0.943323717867,equalizer=f=495.159745586582:g=1.036571598687,equalizer=f=476.155497235608:g=1.135335711982,equalizer=f=457.880632600910:g=1.237175803242,equalizer=f=440.307157909949:g=1.342335109599,equalizer=f=423.408153792158:g=1.453088412615,equalizer=f=407.157734043353:g=1.569993670188,equalizer=f=391.531005972773:g=1.688508164136,equalizer=f=376.504032271996:g=1.808802987893,equalizer=f=362.053794347337:g=1.934465396527,equalizer=f=348.158157059540:g=2.065823830001,equalizer=f=334.795834816768:g=2.204891058267,equalizer=f=321.946358968944:g=2.352009664049,equalizer=f=309.590046453497:g=2.509552803849,equalizer=f=297.707969644483:g=2.678532979186,equalizer=f=286.281927358906:g=2.856115742576,equalizer=f=275.294416975809:g=3.041612670003,equalizer=f=264.728607625441:g=3.230723044219,equalizer=f=254.568314407418:g=3.422700948357,equalizer=f=244.797973598401:g=3.621312762050,equalizer=f=235.402618811295:g=3.826195809769,equalizer=f=226.367858069467:g=4.034154835453,equalizer=f=217.679851760848:g=4.246639157749,equalizer=f=209.325291438168:g=4.468048945659,equalizer=f=201.291379432825:g=4.698686666092,equalizer=f=193.565809251186:g=4.938552319047,equalizer=f=186.136746723276:g=5.187645904525,equalizer=f=178.992811874976:g=5.445967422525,equalizer=f=172.123061495972:g=5.712025685327,equalizer=f=165.516972376744:g=5.984236264250,equalizer=f=159.164425188922:g=6.258981796419,equalizer=f=153.055688984312:g=6.515823590632,equalizer=f=147.181406288853:g=6.777692051390,equalizer=f=141.532578768664:g=7.044587178695,equalizer=f=136.100553446236:g=7.314095599483,equalizer=f=130.877009445637:g=7.583605034445,equalizer=f=125.853945246444:g=7.853114469407,equalizer=f=121.023666426868:g=8.146285201135,equalizer=f=116.378773877299:g=8.444439101287,equalizer=f=111.912152466211:g=8.742593001439,equalizer=f=107.616960141075:g=9.042209423688,equalizer=f=103.486617447577:g=9.344900874707,equalizer=f=99.514797451091:g=9.650668303691,equalizer=f=95.695416044961:g=9.959511710641,equalizer=f=92.022622630759:g=10.271431095557,equalizer=f=88.490791156230:g=10.586541422511,equalizer=f=85.094511497198:g=10.906991735356,equalizer=f=81.828581170245:g=11.233594002758,equalizer=f=78.687997363448:g=11.556996378650,equalizer=f=75.667949272979:g=11.873211536187,equalizer=f=72.763810733831:g=12.194794278600,equalizer=f=69.971133133372:g=12.521192148224,equalizer=f=67.285638596875:g=12.846501740168,equalizer=f=64.703213434600:g=13.169127539473,equalizer=f=62.219901840358:g=13.492484068742,equalizer=f=59.831899831942:g=13.820346094285,equalizer=f=57.535549424116:g=14.145340590334,equalizer=f=55.327333025244:g=14.467659297988,equalizer=f=53.203868048980:g=14.789401139821,equalizer=f=51.161901732761:g=15.111142981226,equalizer=f=49.198306155165:g=15.437629968456,equalizer=f=47.310073444503:g=15.770860796927,equalizer=f=45.494311171305:g=16.104091624940,equalizer=f=43.748237917649:g=16.412536097232,equalizer=f=42.069179016527:g=16.579143834849,equalizer=f=40.454562454745:g=16.588876722789,equalizer=f=38.901914933067:g=16.461103901687,equalizer=f=37.408858077565:g=16.215674576171,equalizer=f=35.973104796389:g=15.850016386783,equalizer=f=34.592455776352:g=15.350234288456,equalizer=f=33.264796113983:g=14.615823142814,equalizer=f=31.988092075884:g=13.626809695512,equalizer=f=30.760387983412:g=12.332756508563,equalizer=f=29.579803216941:g=10.518513413063,equalizer=f=28.444529335092:g=8.346792732977,equalizer=f=27.352827304528:g=5.833681758551,equalizer=f=26.303024836072:g=3.097942665008,equalizer=f=25.293513823067:g=0.163604913582,equalizer=f=24.322747878043:g=-2.887748621210,equalizer=f=23.389239963935:g=-6.091081601564,equalizer=f=22.491560116216:g=-9.478973229620,equalizer=f=21.628333252442:g=-12.539218030638,equalizer=f=20.798237065887:g=-14.384804507659,equalizer=f=20:g=-15"
ffmpeg -i "File.wav" -af %eq% -c:a pcm_s24le out.wav



-
Playing With Emscripten and ASM.js
1er mars 2014, par Multimedia Mike — GeneralThe last 5 years or so have provided a tremendous amount of hype about the capabilities of JavaScript. I think it really kicked off when Google announced their Chrome web browser in September, 2008 along with its V8 JS engine. This seemed to spark an arms race in JS engine performance along with much hyperbole that eventually all software could, would, and/or should be written in straight JavaScript for maximum portability and future-proofing, perhaps aided by Emscripten, a tool which magically transforms C and C++ code into JS. The latest round of rhetoric comes courtesy of something called asm.js which purports to narrow the gap between JS and native code performance.
I haven’t been a believer, to express it charitably. But I wanted to be certain, so I set out to devise my own experiment to test modern JS performance.
Up Front Summary
I was extremely surprised that my experiment demonstrated JS performance FAR beyond my expectations. There might be something to these claims of magnficent JS speed in numerical applications. Basically, here were my thoughts during the process :- There’s no way that JavaScript can come anywhere close to C performance for a numerically intensive operation ; a simple experiment should demonstrate this.
- Here’s a straightforward C program to perform a simple yet numerically intensive operation.
- Let’s compile the C program on gcc and get some baseline performance numbers.
- Let’s use Emscripten to convert the C program to JavaScript and run it under Chrome.
- Ha ! Pitiful JS performance, just as I expected !
- Try the same program under Firefox, since Firefox is supposed to have some crazy optimization for asm.js code, allegedly emitted by Emscripten.
- LOL ! Firefox performs even worse than Chrome !
- Wait a minute… the Emscripten documentation mentioned using optimization levels for generating higher performance JS, so try ‘-O1′.
- Umm… wow : Chrome’s performance increased dramatically ! What about Firefox ? Not only is Firefox faster than Chrome, it’s faster than the gcc-generated code !
- As my faith in C is suddenly shaken to its core, I remembered to compile the gcc version with an explicit optimization level. The native C version pulled ahead of Firefox again, but the Firefox code is still close.
- Aha ! This is just desktop– but what about mobile ? One of the leading arguments for converting everything to pure JavaScript is that such programs will magically run perfectly in mobile browsers. So I wager that this is where the experiment will fall over.
- I proceed to try the same converted program on a variety of mobile platforms.
- The mobile platforms perform rather admirably as well.
- I am surprised.
The Experiment
I wanted to run a simple yet numerically-intensive and relevant benchmark, and something I am familiar with. I settled on JPEG image decoding. Again, I wanted to keep this simple, ideally in a single file because I didn’t know how hard it might be to deal with Emscripten. I found NanoJPEG, which is a straightforward JPEG decoder contained in a single C file.
I altered nanojpeg.c (to a new file called nanojpeg-static.c) such that the main() program would always load a 1920×1080 (a.k.a. 1080p) JPEG file (“bbb-1080p-title.jpg”, the Big Buck Bunny title), rather than requiring a command line argument. Then I used gettimeofday() to profile the core decoding function (njDecode()).
Compiling with gcc and profiling execution :
gcc -Wall nanojpeg-static.c -o nanojpeg-static ./nanojpeg-static
Optimization levels such as -O0, -O3, or -Os can be applied to the compilation command.
For JavaScript conversion, I installed Emscripten and converted using :
/path/to/emscripten/emcc nanojpeg-static.c -o nanojpeg.html \ —preload-file bbb-1080p-title.jpg -s TOTAL_MEMORY=32000000
The ‘–preload-file’ option makes the file available to the program via standard C-style file I/O functions. The ‘-s TOTAL_MEMORY’ was necessary because the default of 16 MB wasn’t enough. Again, the -O optimization levels can be sent in.
For running, the .html file is loaded (via webserver) in a web browser.
Want To Try It Yourself ?
I put the files here : http://multimedia.cx/emscripten/. The .c file, the JPEG file, and the Emscripten-converted files using -O0, -O1, -O2, -O3, -Os, and no optimization switch.Results and Charts
Here is the spreadsheet with the raw results.I ran this experiment using Ubuntu Linux 12.04 on an Intel Atom N450-based netbook. For this part, I was able to compare the Chrome and Firefox browser results against the C results :
These are the results for a 2nd generation Android Nexus 7 using both Chrome and Firefox :
Here is the result for an iPad 2 running iOS 7 and Safari– there is no Firefox for iOS and while there is a version of Chrome for iOS, it apparently isn’t able to leverage an optimized JS engine. Chrome takes so long to complete this experiment that there’s no reason to muddy the graph with the results :
Interesting that -O1 tends to provide better optimization than levels 2 or 3, and that -Os (optimize for size) seems to be a good all-around choice.
Don’t Get Too Smug
JavaScript can indeed get amazing performance in this day and age. Please be advised, however, that this isn’t the best that a C decoder implementation can possibly do. This version doesn’t leverage any SIMD extensions. According to profiling (using gprof against the C code), sample saturation in color conversion dominates followed by inverse DCT functions, common cases for SIMD ASM or intrinsics. Allegedly, there will be some support for JS SIMD optimizations some day. We’ll see.Implications For Development
I’m still not especially motivated to try porting the entire Native Client game music player codebase to JavaScript. I’m still wondering about the recommended development flow. How are you supposed to develop for Emscripten and asm.js ? From what I can tell, Emscripten is not designed as a simple aide for porting C/C++ code to JS. No, it reduces the code into JS code you can’t possibly maintain. This seems to imply that the C/C++ code needs to be developed and debugged in its entirety and then converted to JS, which seems arduous. -
Why this simple video streaming scheme does not work ?
8 août 2014, par Vi.I’ve tried setting up simple webm video streaming scheme, based on ffserver and
<video></video>
element :# relevant part of ffserver.conf
<stream>
Feed feed1.ffm
Format webm
VideoFrameRate 15
AVOptionVideo flags +global_header
VideoSize 640x480
VideoCodec libvpx
VideoBitRate 800
NoAudio
</stream>
# ffmpeg command line
ffmpeg -f rawvideo -s 640x480 -i /dev/zero -vb 100000 http://vsodo.vi-server.org:8090/feed1.ffm
# video element
<video controls="controls" autoplay="autoplay">
<source src="http://vsodo.vi-server.org:8090/feed1.webm" type="video/webm"></source>
Your browser does not support the video tag.
</video>But it works only in few cases :
- luakit - works (uses GStreamer) ;
- uzbl - works ;
- Firefox - fails (at least in versions 17, 24 and 26 and 31) ;
- Chromium 31.0.1650.63 - fails ;
- Google Chrome 27.0.1453.93 - fails ;
- Built-in browser in Android 2.3 - fails.
Failing browsers usually show the video length and the fact that there’s no audio track, but the video area stays black, not green as expected.
This page lists "Partial support" or "Supported" for webm and video element. Usual players like VLC or
mplayer
work if specifyhttp://vsodo.vi-server.org:8090/feed1.webm
to them. Example video page also works (except of on Android 2.3).Why it can fail ? How do I troubleshoot browser-specific the
<video></video>
problems ?