
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 (37)
-
Ajouter notes et légendes aux images
7 février 2011, parPour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
Modification lors de l’ajout d’un média
Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...) -
Emballe médias : à quoi cela sert ?
4 février 2011, parCe plugin vise à gérer des sites de mise en ligne de documents de tous types.
Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ; -
Contribute to a better visual interface
13 avril 2011MediaSPIP is based on a system of themes and templates. Templates define the placement of information on the page, and can be adapted to a wide range of uses. Themes define the overall graphic appearance of the site.
Anyone can submit a new graphic theme or template and make it available to the MediaSPIP community.
Sur d’autres sites (5461)
-
ffmpeg transcoding : Metallic distorsion on macOS
10 septembre 2024, par XaviI am following ffmpeg's transcoding.c example to record audio and video from my input devices into an mp4 output file with H264 and AAC as codecs. I have no issues with the video and the audio transcoding works correctly on Windows.


However, on macOS I have an issue with any input device other than the internal microphone of my laptop : the audio comes out distorted and sounding noisy and metallic (sample recording claps : https://file.io/nEn8MXHUAUQ2). I went through the input and output parameters for the filter several times, checked the values, but there must be something I'm missing. And I can't explain why it works on Windows with the same devices.


Has anyone run into a similar problem before ? Any idea where I should start looking at ?


Additional comments :


- 

- While the Macbook's internal microphone (the only one that works) has only one channel, the other microphones I have available are stereo, so I can't say for sure that that's where the problem is.
- I also tested it on a macbook mini, with the same results.
- ffmpeg 6.1.1, MacOs 14.5
- Input filter arguments :
time_base=1/1000000:sample_rate=48000:sample_fmt=1:channel_layout=stereo
- Output filter arguments :
setpts=PTS-STARTPTS,aresample=48000:async=1:out_sample_fmt=8:out_chlayout=stereo,asetnsamples=n=1024












-
hls.js starting a beginning with ANDROID mobile (chrome, webview also) and not live *** but works very nice in deskto, ios .. hls.js 1.0.0 2021-04-01
27 avril 2021, par JintorI'm streaming a .m3u8 with the latest hls.js 1.0.0 (not rc) but version of 2021-04-01...


example : the stream began at 5pm, and now it's 5:15 pm...


the stream start at live point in almost all browsers


The pattern I see here : ALL browsers in android (tested in Android 10) won't start at live point, only at 0...


I did all the tests


• Safari desktop => stream live at 5:15


• Safari mobile => stream live at 5:15


• WebView (Android) => ••• ISSUE : the player starts the stream at 0 (5pm)


• WKWebView (apple IOS iphone,ipad) => stream live at 5:15


• Chrome Desktop (mac/win) => stream live at 5:15


• Chrome MOBILE (Android) => ••• ISSUE : the player starts the stream at 0 (5pm)


• Chrome MOBILE (iPhone) => stream live at 5:15


• Microsoft EDGE Desktop => stream live at 5:15


• Microsoft EDGE mobile (android) => ••• ISSUE : the player starts the stream at 0 (5pm)


• Firefox Desktop (mac/win) => stream live at 5:15


• Opera Desktop (mac/win) => stream live at 5:15


• Opera Mini (iPhone) => stream live at 5:15


• Opera Mini (android) => ••• ISSUE : the player starts the stream at 0 (5pm)


• Brave Desktop (mac/win) => stream live at 5:15


• Brave Mobile (iPhone) => stream live at 5:15


• Brave Mobile (android) => ••• ISSUE : the player starts the stream at 0 (5pm)


This code


<code class="echappe-js"><script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>



<script>&#xA; var video = document.getElementById("video");&#xA; var videoSrc = "https://www.example1.com/streaming/index.m3u8";&#xA; if (video.canPlayType("application/vnd.apple.mpegurl")) {&#xA; video.src = videoSrc;&#xA; } else if (Hls.isSupported()) {&#xA; var config = {&#xA; autoStartLoad: true,&#xA; startPosition: -1,&#xA; debug: false,&#xA; capLevelOnFPSDrop: false,&#xA; capLevelToPlayerSize: false,&#xA; defaultAudioCodec: undefined,&#xA; initialLiveManifestSize: 1,&#xA; maxBufferLength: 30,&#xA; maxMaxBufferLength: 500,&#xA; backBufferLength: Infinity,&#xA; maxBufferSize: 60 * 1000 * 1000,&#xA; maxBufferHole: 0.5,&#xA; highBufferWatchdogPeriod: 2,&#xA; nudgeOffset: 0.1,&#xA; nudgeMaxRetry: 3,&#xA; maxFragLookUpTolerance: 0.25,&#xA; liveSyncDurationCount: 3,&#xA; liveMaxLatencyDurationCount: Infinity,&#xA; liveDurationInfinity: false,&#xA; enableWorker: true,&#xA; enableSoftwareAES: true,&#xA; manifestLoadingTimeOut: 10000,&#xA; manifestLoadingMaxRetry: 1,&#xA; manifestLoadingRetryDelay: 1000,&#xA; manifestLoadingMaxRetryTimeout: 64000,&#xA; startLevel: undefined,&#xA; levelLoadingTimeOut: 10000,&#xA; levelLoadingMaxRetry: 4,&#xA; levelLoadingRetryDelay: 1000,&#xA; levelLoadingMaxRetryTimeout: 64000,&#xA; fragLoadingTimeOut: 20000,&#xA; fragLoadingMaxRetry: 6,&#xA; fragLoadingRetryDelay: 1000,&#xA; fragLoadingMaxRetryTimeout: 64000,&#xA; startFragPrefetch: false,&#xA; testBandwidth: true,&#xA; progressive: false,&#xA; lowLatencyMode: true,&#xA; fpsDroppedMonitoringPeriod: 5000,&#xA; fpsDroppedMonitoringThreshold: 0.2,&#xA; appendErrorMaxRetry: 3,&#xA; enableWebVTT: true,&#xA; enableIMSC1: true,&#xA; enableCEA708Captions: true,&#xA; stretchShortVideoTrack: false,&#xA; maxAudioFramesDrift: 1,&#xA; forceKeyFrameOnDiscontinuity: true,&#xA; abrEwmaFastLive: 3.0,&#xA; abrEwmaSlowLive: 9.0,&#xA; abrEwmaFastVoD: 3.0,&#xA; abrEwmaSlowVoD: 9.0,&#xA; abrEwmaDefaultEstimate: 500000,&#xA; abrBandWidthFactor: 0.95,&#xA; abrBandWidthUpFactor: 0.7,&#xA; abrMaxWithRealBitrate: false,&#xA; maxStarvationDelay: 4,&#xA; maxLoadingDelay: 4,&#xA; minAutoBitrate: 0,&#xA; emeEnabled: false&#xA; };&#xA; var hls = new Hls(config);&#xA; hls.loadSource(videoSrc);&#xA; hls.attachMedia(video);&#xA; } &#xA; video.addEventListener("loadedmetadata", function(){ video.muted = true; video.play(); }, false);&#xA; </script>



// here I added video.muted = true ; video.play() ; to auto start, if I try to autoplay unmuted, many browsers refuse this command...


// playsinline="true" is NEEDED for safari


••••••• THE FFMPEG COMMAND (working : it allows me to have 3 to 4 seconds delay ••••••


ffmpeg -re -i input.x -c:a aac -c:v libx264 
-movflags +dash -preset ultrafast 
-crf 28 -refs 4 -qmin 4 -pix_fmt yuv420p 
-tune zerolatency -c:a aac -ac 2 -profile:v main 
-flags -global_header -bufsize 969k 
-hls_time 1 -hls_list_size 0 -g 30 
-start_number 0 -streaming 1 -hls_playlist 1 
-lhls 1 -hls_playlist_type event -f hls path_to_index.m3u8



•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••


How can this be fixed ?


How can I make play at live point on load in android MOBILE ?


-
Evolution #4445 (Nouveau) : Permettre de savoir si espace privé depuis tous les JS
22 février 2020, par RastaPopoulos ♥En JS, il semble que SPIP ne fournisse rien pour savoir si on est dans l’admin ou pas. Or c’est indispensable au moins pour certains appels d’URL, savoir si on doit avoir ../ avant ou pas (par ex pour les API mais pas que).
Le plugin Sélecteur générique fait ça en ajoutant depuis PHP une globale JS selecteur_test_espace_prive booléenne. Mais c’est pourri que chaque plugin doive faire ça. C’est SPIP qui devrait le fournir, comme test_espace_prive() en PHP quoi.
Du coup soit faut fournir une globale du même style, mais en plus propre SPIP fournit déjà une classe "jquery.spip", du coup ça devrait être un attribut ou une méthode de cette classe.
Par contre pour la place, à priori c’est pas dans ajaxCallback, puisque pour le faire solidement, c’est sûrement mieux que ce soit en utilisant la fonction PHP. Donc il faudrait que SPIP ajoute ça après le chargement de ajaxCallback, et qu’en PHP, ça rajoute un mini morceau de JS pour compléter jquery.spip avec un attribut qui dit où on est.
Après dans n’importe quel JS de plugin, on ferait facilement
if ($.spip.test_espace_prive()) { …