
Recherche avancée
Autres articles (48)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Personnaliser les catégories
21 juin 2013, parFormulaire de création d’une catégorie
Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
On peut modifier ce formulaire dans la partie :
Administration > Configuration des masques de formulaire.
Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...) -
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 (...)
Sur d’autres sites (11145)
-
Is there any open source solution to display a remote stream inside a Hololens2 UWP Vuforia application ?
19 avril 2023, par T777What do we need ?


We are trying to develop an application for quality management in which we show an hologram on a metal part as an assitance marking. (using Hololen2 + Vuforia + ModleTargets) The employee uses an sensor to follow this assitance marking and the data will be analyzed live by a test device. The results are outputed on a screen / are visible at an closed source application of the manufacturer of the test device.


Capturing of the video output :
The current plan is to capture the video stream of the test device via capture card. Add a via mrtk2 videopanel inside the vuforia app and stream the captured video to the Hololens2 using obs or an OpenCV python script for screen recording.


What we have tried so far


1) Sending Raw udp stream
via RMTP and decoding + converting with gstreamer server and writing an own library in Unity for Receiving
Result : Temporary stopped, because receiving the udp streams needs connection/ session management (signalling) frame syncing and agreement on video size, color format, frame rate etc.. and we have no solution.
An own implementation of any of this would have high complexity is consuming a lot of time.


2) Using available protocols that i can find on the web
Actually there are some protocols already developed for session creation and streaming :


- 

- HTTP streaming (HLS) (Transport + Session)
- RTMP (Transport + Session),
- RTP (Transport) + RTPS (Session),
- WebRTC : Is possible with different protocol stacks
RTMP/TCP/UDP (Transport) + SDP (standardized format for video paramaters) + ICE (p2p)/ WHIP (http, client-server) / Websocket(client-server) (signaling protocols) that can be used and some good open source streaming servers (gstreamer, mediamtx and srs)










When using these the video will be encoded typcially with xh264 and need to be decoded on the HoloLens 2. There are APIs to C/C++ native (hardware) decoding libraries like unity-vlc and ffmpeg.NET that needing media library ffmpeg. I could figure out (not tested) that there is an hardware h264 decoder on the HoloLens2 but I have no clue how to access it. Since there I couldnt disvocer any information about HoloLens2 media libraries.


3) Using Unity packages


- 

-
Unit package WebRTC (https://docs.unity3d.com/Packages/com.unity.webrtc@2.4/manual/index.html) supports multiple transport protocols seem to have no signaling mechanism and


-
Unity package Render streaming (https://docs.unity3d.com/Packages/com.unity.renderstreaming@3.1/manual/index.html) is a fully integrated unity to unity and unit to browser streaming package with integrated stream Server with web GUI. It offers various streaming protocols (TCP, UDP,rmtp) and signaling mechanism over websocket, http (seems custom and not whip) or Furiouus.
BUT it doesnt support UWP as noted into the documentation. Implementing an example application we could demonstrate an working example with Vuforia, but it fails on build with target UWP on missing libraries.
Similar to : https://www.youtube.com/watch?v=nHRC0uGBnn8








Will be testing other compile options tomorrow..


- 

- Mixed Reality WebRTC (https://github.com/microsoft/MixedReality-WebRTC) :
Various protocol support, Microsoft brought Webrtc specifically to HoloLens.
Deprecated, as fas as I can see just support for Hololens1 and ARM32. So i can not evaluate if trying it with this is worth it.




What are the next options ?


- 

- Developing a raw udp streaming library with untiy directly.
- Rebuilding the application with visionlib (ARM32) compatible and MixedRealityWebRTC (ARM32)
- Porting ffmpeg + API to UWP ?
- Also there seem some affords to make WebRTC in general available to UWP platforms : https://github.com/microsoft/winrtc










The questions


- 

- Does Vuforia support ARM32 ?
- How to access hardware decoder of Hololens2 via Unity Code ?






-
c# RTSP audio to FFMPEG to SpeechRecognitionEngine
18 avril 2016, par MrH40XXI’m trying to get an audiostream (from any source file/other stream/...) into the microsoft speech recognition engine.
So far I’ve got :
ffmpeg.exe -rtsp_transport tcp -i rtsp ://%_return1%/audio -acodec pcm_u16le -f rtp rtp ://localhost:2222
Then I have inside my code :
SpeechRecognitionEngine _engine = new SpeechRecognitionEngine(CultureInfo.CurrentCulture);
this._engine.SetInputToAudioStream(this._rtpClient.AudioStream, new SpeechAudioFormatInfo(16000, AudioBitsPerSample.Sixteen, AudioChannel.Mono));Then I have the events registered :
this._engine.SpeechRecognized += this.SpeechRegocnized;
this._engine.SpeechDetected += this.EngineOnSpeechDetected;I’m not sure about the codec settings... I’ve tried other codecs but doesn’t work.
-
Understanding the VP8 Token Tree
7 juin 2010, par Multimedia Mike — VP8I got tripped up on another part of the VP8 decoding process today. So I drew a picture to help myself understand it. Then I went back and read David Conrad’s comment on my last post regarding my difficulty understanding the VP8 spec and saw that he ran into the same problem. Since we both experienced the same hindrance in trying to sort out this matter, I thought I may as well publish the picture I drew.
VP8 defines various trees for decoding different syntax elements. There is one tree for decoding the tokens and it is expressed in the VP8 spec as such :
C :-
const tree_index coef_tree [2 * (num_dct_tokens - 1)] =
-
{
-
-dct_eob, 2, /* eob = "0" */
-
-DCT_0, 4, /* 0 = "10" */
-
-DCT_1, 6, /* 1 = "110" */
-
8, 12,
-
-DCT_2, 10, /* 2 = "11100" */
-
-DCT_3, -DCT_4, /* 3 = "111010", 4 = "111011" */
-
14, 16,
-
-dct_cat1, -dct_cat2, /* cat1 = "111100", cat2 = "111101" */
-
18, 20,
-
-dct_cat3, -dct_cat4, /* cat3 = "1111100", cat4 = "1111101" */
-
-dct_cat5, -dct_cat6 /* cat4 = "1111110", cat4 = "1111111" */
-
} ;
Here is what the table looks like when you make a tree out of it (click for full size image) :
The catch is that it makes no sense for an end-of-block (EOB) token to follow a 0 token since EOB already indicates that the remainder of the coefficients should be 0 anyway. Thus, the spec states that, "decoding of certain DCT coefficients may skip the first branch, whose preceding coefficient is a DCT_0." I confess, I didn’t understand what "skip the first branch" meant until I drew the tree.
For those wondering why it might be sub-optimal (clarity-wise) for a spec to simply regurgitate vast chunks of C code, this makes a decent case. As you can see, the spec makes certain assumptions about how a binary tree should be organized in a static array (node n points to elements n*2 and n*2+1 as its branches ; leaves are either negative or 0). This is the second method I have seen ; another piece of code (not the VP8 spec) had the nodes in the first half of the array and pointed to leaves in the second half. There must be other arrangements.
-