Le Forum du Vélorizontal, vélo couché et autres véhicules à propulsion humaine Le forum francophone de tous les amateurs de cette pratique cycliste |
|
| GoPro & Linux | |
|
+7Velosteph JeanMarc38 Pulsar33 orion Lud'O claymore progweb 11 participants | |
Auteur | Message |
---|
progweb Posteur d'or
Messages : 577 Localisation : France VPH : ICE VTX Black Date d'inscription : 25/04/2020
| Sujet: Re: GoPro & Linux Jeu 13 Juil 2023, 22:16 | |
| Bonsoir, J'ai repris le truc à tête reposer... Alors pour faire les tests, on va s'intéresser à la commande "compute". - Code:
-
./gpx2video -g Jonzac04O-VG.gpx -o test-none.csv -t 0 compute ./gpx2video -g Jonzac04O-VG.gpx -o test-interpolate.csv -t 3 compute ./gpx2video -g Jonzac04O-VG.gpx -o test-linear.csv -t 2 compute On va oublier pour le moment le filtre de Kalman. La méthode de calcul : on définit 3 points : - pt_prev pour le point précédemment calculé - pt_cur pour le point courant, celui qui va être affiché - pt_next pour le prochain point dispo dans le GPX. on calcule les données de télémétrie toutes les secondes. (et non à chaque image... ça ne sert à rien) On verra plus tard, si je dois changer la fréquence. Or dans un GPX on a suivant les données des points qui peuvent être espacés plusieurs secondes. Filtre "none" : on calcule les données de télémétrie à chaque nouveau point disponible dans le GPX. Tant qu'il n'y a pas de point, on affiche les résultats des calculs précédents. Donc si dans le GPX, tu as 2 points séparés de 10 secondes, les widgets ne sont pas mis à jour pendant 10 secondes. Filtre "linear" : Si le point courant est avant la prochain point suivant disponible dans le GPX, on considère que l'évolution de la position / élévation est linéaire. Ex: si à t_prev, ele = 30, à t_cur, ele = 31, on considère qu'au prochain t_cur, ele = 32, puis 33... etc jusqu'à atteindre le point t_next ; et là on réajuste tout. C'est basique, mais ça fait moins de "sauts". Filtre "interpolate" : Entre 2 points disponibles dans le GPX, on calcule pt_cur par interpolation. C'est plus propre que la méthode linear. Ces 3 filtres ne "filtrent" pas les résultats. Il faut donc que les données issues du GPS soient correctes et précises. Je viens d'apporter une amélioration assez importante en ce qui te concerne ! Dans ton GPX, l'heure est de la forme : - Code:
-
2023-04-22T15:55:38.645000+0200 2023-04-22T15:55:57.829000+0200 2023-04-22T15:55:59.381000+0200 Dans ton cas, on voit que l'heure est indiquée en précisant les "ms" et surtout que cette valeur n'est pas constante. Or je ne prenais en compte que HH:MM:SS. Et 57 secondes c'est très différent de 57.829 secondes !!! A présent, je prends en compte les "ms" pour faire les tous les calculs. En testant, sur ton GPX & générant les CSV correspondants, les courbes semblent plus propres. Tu verras d'ailleurs que l'élévation est recalculée. J'ai ajouté au CSV la donnée "grade" pour la pente. - Code:
-
$ cat data.gnuplot # Title set title 'GPX2video Telemetry'
set grid
set xdata time set timefmt "%s" set format x "%H:%M:%S" set xlabel "Time"
set datafile commentschars "#"
plot "test-interpolate.csv" u 3:9 w lp t 'grade'
pause mouse close
$ gnuplot -p data.gnuplot Je continuerai de regarder / vérifier / corriger tout cela. |
| | | Pulsar33 Accro du forum
Messages : 2806 Âge : 69 Localisation : Gironde VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11) Date d'inscription : 17/11/2015
| Sujet: Re: GoPro & Linux Ven 14 Juil 2023, 00:44 | |
| Je viens juste de voir ton message, j'avais des problèmes de connexion. Je regarderai en détail demain. Entre temps, j'avais fait le test dont le résultat est ci-dessous : Les latitudes, longitudes et altitudes sont correctes et plutôt lisses. Ce sont a priori les valeurs fournies par le gpx à ton logiciel. Elles semblent inchangées. La vitesse en revanche est calculée et effectivement plutôt bruitée. A droite en bas, on voit la même valeur filtrée de la manière suivante : $R$2 = constante de temps du 1er ordre en nombre de cycles = 5 dans cet exemple R15 = (2*$R$2-1)/(2*$R$2+1)*R14+1/(1+2*$R$2)*(J15+J14) et formule recopiée jusqu'en bas La vitesse semble déjà beaucoup plus propre mais c'est juste pour avoir une idée car je néglige les cas (peu nombreux) où l'écart n'est pas "à la seconde" Par ailleurs, le filtre introduit bien sûr un retard ... A suivre Pulsar33
Dernière édition par Pulsar33 le Sam 09 Sep 2023, 20:20, édité 1 fois |
| | | Pulsar33 Accro du forum
Messages : 2806 Âge : 69 Localisation : Gironde VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11) Date d'inscription : 17/11/2015
| Sujet: Re: GoPro & Linux Ven 14 Juil 2023, 11:32 | |
| Bonjour,
Suite à ton message ci-dessus, j'ai cloné à nouveau gpx2video mais le code dont tu parles ne sembles pas présent. Je n'ai pas compris la fin de ton message à partir de $ cat data.gnuplot # Title ...
Mes réactions à tes propos : - Kalman ne me semble pas nécessaire en effet. Ok pour none, linear et interpolate et d'accord pour un échantillonnage "à la seconde", c'est suffisant - Une fois l'ensemble de données "à la seconde" obtenu, un léger filtre sur la vitesse assorti d'une compensation du retard introduit serait sans doute utile - Le calcul de la pente pourrait alors seulement être effectué dans de bonnes conditions - Enfin l'affichage peut être envisagé en utilisant le plus proche voisin temporel Je crois que c'est inutile de compliquer plus pour le résultat attendu
Bonne journée Pulsar33
|
| | | Pulsar33 Accro du forum
Messages : 2806 Âge : 69 Localisation : Gironde VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11) Date d'inscription : 17/11/2015
| Sujet: Re: GoPro & Linux Sam 15 Juil 2023, 12:24 | |
| Bonjour, Confirmation du bug cité page précédente : Perte du son depuis ici jusqu'à la fin Cordialement Pulsar33
Dernière édition par Pulsar33 le Sam 09 Sep 2023, 20:22, édité 1 fois |
| | | progweb Posteur d'or
Messages : 577 Localisation : France VPH : ICE VTX Black Date d'inscription : 25/04/2020
| Sujet: Re: GoPro & Linux Ven 21 Juil 2023, 19:47 | |
| Hello, Du nouveau, et c'est en ligne ! Les filtres* le plus simple, travailler via la commande "telemetry" qui permet d'exploiter les données en CSV Filtre "none" : on calcule les données de télémétrie à chaque nouveau point disponible dans le GPX. Tant qu'il n'y a pas de point, on affiche les résultats des calculs précédents. Donc si dans le GPX, tu as 2 points séparés de 10 secondes, les widgets ne sont pas mis à jour pendant 10 secondes. => Dans le CSV, tu auras autant de ligne que de points dans le GPX. => Cela permet de tester le parsing du GPX et vérifier les calculs en les calculant dans LibreOffice / MS Excel Filtre "sample" : permet de créer un échantillon chaque seconde. Les lignes avec le type "M" sont les points de mesure (donc les mêmes valeur que le filtre "none") les lignes avec le type "P" (pour predicted) sont les points intermédiaires (mais sans calcul particulier) => C'est le rendu qu'il y aura dans le rendu vidéo avec un filtre simple Filtre "linear" : Si le point courant est avant la prochain point suivant disponible dans le GPX, on considère que l'évolution de la position / élévation est linéaire. Ex: si à t_prev, ele = 30, à t_cur, ele = 31, on considère qu'au prochain t_cur, ele = 32, puis 33... etc jusqu'à atteindre le point t_next ; et là on réajuste tout. C'est basique, mais ça fait moins de "sauts". Filtre "interpolate" : Entre 2 points disponibles dans le GPX, on calcule pt_cur par interpolation. C'est plus propre que la méthode linear. Enfin et le plus important, les points sont filtrés sur 3 échantillons. (ce n'est pour l'instant pas configurable) Rendu video / imageTu peux maintenant faire un rendu image par image (en png) Au lieu d'utiliser la commande "video" pour faire un rendu vidéo, utiliser la commande "image" pour un rendu image par image. Les images seront au format PNG et transparentes. Possible de mettre une couleur verte en fond en utilisant un widget image de la taille de la vidéo - Code:
-
<widget x="0" y="0" width="1920" height="1080" position="none" display="true"> <type>image</type> <background-color>#00aa00ff</background-color> </widget>
Widget avgridespeedUn nouveau type de widget permettant d'afficher la vitesse moyenne roulée. (donc sans prendre en compte les zones d'arrêt). Track / MapTu peux maintenant changer la taille / l'épaisseur de la piste sur les widgets track & map : - Code:
-
<path-thick>3.0</path-thick> <path-border>1.4</path-border>
Si path-border est 0, alors il n'y a pas de bordure. Le path est dessiné de manière vectorielle, mais avec une faible résolution de vidéo, le rendu ne sera pas terrible. |
| | | Pulsar33 Accro du forum
Messages : 2806 Âge : 69 Localisation : Gironde VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11) Date d'inscription : 17/11/2015
| Sujet: Re: GoPro & Linux Ven 21 Juil 2023, 20:04 | |
| Bonsoir,
J'avais vu et cloné avant que tu postes ton message. J'ai intégré les directives pour l'épaisseur de la trace et lancé à l'identique par rapport à mon essai précédent. Mais ça boucle (un des coeurs est à 100%, les autres ne font rien et CTRL-C n'est pas pris en compte) Rien dans le log après la lecture des tuiles ...
Une idée ? Pulsar33 |
| | | Pulsar33 Accro du forum
Messages : 2806 Âge : 69 Localisation : Gironde VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11) Date d'inscription : 17/11/2015
| Sujet: Re: GoPro & Linux Ven 21 Juil 2023, 20:12 | |
| - Code:
-
pulsar33@Minerve:...$ /media/DATA/Workbench/gpx2video/build/gpx2video -m Jonzac04O.mp4 -g Jonzac04O-VG.gpx --offset 9000 -l layout576p04T.xml -o Jonzac04TN.mp4 video gpx2video v0.0.0 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Jonzac04O.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf58.76.100 Duration: 01:22:12.38, start: 0.000000, bitrate: 5239 kb/s Stream #0:0(und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 720x576 [SAR 64:45 DAR 16:9], 5106 kb/s, 25 fps, 25 tbr, 12800 tbn, 25 tbc (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default) Metadata: handler_name : SoundHandler vendor_id : [0][0][0][0] Use default creation time: 2023-04-22 17:55:31 [libx264 @ 0x55d1e3793880] using SAR=64/45 [libx264 @ 0x55d1e3793880] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 [libx264 @ 0x55d1e3793880] profile High, level 4.1, 4:2:0, 8-bit [libx264 @ 0x55d1e3793880] 264 - core 163 r3060 5db6aa6 - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=cbr mbtree=1 bitrate=32000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=32000 vbv_bufsize=2000 nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to 'Jonzac04TN.mp4': Stream #0:0: Video: h264, yuv420p, 720x576 [SAR 64:45 DAR 16:9], q=2-31, 32000 kb/s, 25 tbn Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 128 kb/s Parsing 'layout576p04T.xml' layout file Load widget 'grade' Initialize grade widget Load widget 'speed' Initialize speed widget Load widget 'elevation' Initialize elevation widget Load widget 'time' Initialize time widget Load widget 'date' Initialize date widget Load widget 'duration' Initialize duration widget Load map widget Initialize map widget Cache initialization... Time synchronization... ERROR: No GPS data stream found WARNING: Time synchronization failure! Download map from OpenStreetMap I... Download tile 513 / 513 [##################################################] DONE Build map... Rendering...
|
| | | progweb Posteur d'or
Messages : 577 Localisation : France VPH : ICE VTX Black Date d'inscription : 25/04/2020
| Sujet: Re: GoPro & Linux Ven 21 Juil 2023, 20:28 | |
| Je vais retester le rendu vidéo, en espérant que je n'ai rien cassé, et je te redis |
| | | Pulsar33 Accro du forum
Messages : 2806 Âge : 69 Localisation : Gironde VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11) Date d'inscription : 17/11/2015
| Sujet: Re: GoPro & Linux Ven 21 Juil 2023, 20:37 | |
| J'ai relancé l'ancienne version en jonglant avec les noms de dossier gpx2video % gpx2video_ : je confirme le problème de la nouvelle version J'ai également recopié exactement ton paramétrage du widget map, ça plante pareil, après rendering, un coeur boucle et aucune frame n'est générée. Si quelque chose manquait pour la compilation, il n'aurait pas finalisé l'exécutable je suppose ?
Bon courage Pulsar33 |
| | | progweb Posteur d'or
Messages : 577 Localisation : France VPH : ICE VTX Black Date d'inscription : 25/04/2020
| Sujet: Re: GoPro & Linux Ven 21 Juil 2023, 20:44 | |
| tu peux me donner ton fichier layout.xml
et la commande gpx2video que tu utilises.
J'ai déjà la vidéo de 6min et le GPX.
|
| | | Pulsar33 Accro du forum
Messages : 2806 Âge : 69 Localisation : Gironde VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11) Date d'inscription : 17/11/2015
| Sujet: Re: GoPro & Linux Ven 21 Juil 2023, 20:48 | |
| La commande tc'est : - Code:
-
/media/DATA/Workbench/gpx2video/build/gpx2video -m Jonzac04O.mp4 -g Jonzac04O-VG.gpx --offset 9000 -l layout576p04TN.xml -o Jonzac04TN.mp4 video La vidéo c'est l'intégrale et le gpx c'est celui qui a les altitudes générées par VisuGPS Fichier layout que je voudrais utiliser : - Code:
-
<?xml version="1.0" encoding="UTF-8"?> <layout> <widget width="160" height="40" position="top-left" align="vertical"> <type>grade</type> <name>PENTE</name> <margin>2</margin> <padding>5</padding> <text-color>#ffff00ff</text-color> <text-shadow>1</text-shadow> <border>1</border> <border-color>#000000b0</border-color> <background-color>#0000004c</background-color> </widget> <widget width="160" height="40" position="top-left" align="vertical"> <type>speed</type> <name>VITESSE</name> <unit>kph</unit> <margin>2</margin> <padding>5</padding> <text-color>#ffff00ff</text-color> <text-shadow>1</text-shadow> <border>1</border> <border-color>#000000b0</border-color> <background-color>#0000004c</background-color> </widget> <widget width="160" height="40" position="top-left" align="vertical"> <type>elevation</type> <name>ALTITUDE</name> <unit>m</unit> <margin>2</margin> <padding>5</padding> <text-color>#ffff00ff</text-color> <text-shadow>1</text-shadow> <border>1</border> <border-color>#000000b0</border-color> <background-color>#0000004c</background-color> </widget> <widget width="160" height="40" position="top-right" align="vertical"> <type>time</type> <name>HEURE</name> <margin>2</margin> <padding>5</padding> <text-color>#ffff00ff</text-color> <text-shadow>1</text-shadow> <border>1</border> <border-color>#000000b0</border-color> <background-color>#0000004c</background-color> </widget> <widget width="160" height="40" position="top-right" align="vertical"> <type>date</type> <name>DATE</name> <format>%d-%m-%Y</format> <margin>2</margin> <padding>5</padding> <text-color>#ffff00ff</text-color> <text-shadow>1</text-shadow> <border>1</border> <border-color>#000000b0</border-color> <background-color>#0000004c</background-color> </widget> <widget width="160" height="40" position="top-right" align="vertical"> <type>duration</type> <name>DUREE</name> <margin>2</margin> <padding>5</padding> <text-color>#ffff00ff</text-color> <text-shadow>1</text-shadow> <border>1</border> <border-color>#000000b0</border-color> <background-color>#0000004c</background-color> </widget> <map width="240" height="140" position="top" display="true"> <source>1</source> <zoom>18</zoom> <factor>0.3</factor> <margin>2</margin> <border>1</border> <border-color>#000000ff</border-color> <path-thick>3.0</path-thick> <path-border>1.0</path-border> </map> </layout> J'ai essayé aussi en remplaçant ma définition du widget map par la tienne : - Code:
-
<map width="240" height="140" position="top" display="true"> <source>1</source> <zoom>11</zoom> <factor>1.2</factor> <marker>60</marker> <border>5</border> <border-color>#000000b0</border-color> <background-color>#0000004c</background-color> <path-thick>3.0</path-thick> <path-border>1.4</path-border> </map>
@+ Puls |
| | | Pulsar33 Accro du forum
Messages : 2806 Âge : 69 Localisation : Gironde VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11) Date d'inscription : 17/11/2015
| Sujet: Re: GoPro & Linux Ven 21 Juil 2023, 21:13 | |
| Nota : les messages "Build map" et "Rendering" ne s'affichent pas toujours. Je vais quand même manger un peu Bonne soirée Pulsar33 |
| | | progweb Posteur d'or
Messages : 577 Localisation : France VPH : ICE VTX Black Date d'inscription : 25/04/2020
| Sujet: Re: GoPro & Linux Ven 21 Juil 2023, 21:18 | |
| Ok,
ajoute "--telemetry 3" à la commande.
Je vais corriger le problème dans le cas où c'est à 0 ou non renseigné. |
| | | Pulsar33 Accro du forum
Messages : 2806 Âge : 69 Localisation : Gironde VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11) Date d'inscription : 17/11/2015
| Sujet: Re: GoPro & Linux Ven 21 Juil 2023, 21:24 | |
| ça fonctionne nettement mieux Bravo pour ton efficacité ! Je laisse tourner Bonne soirée et merci Pulsar33 |
| | | progweb Posteur d'or
Messages : 577 Localisation : France VPH : ICE VTX Black Date d'inscription : 25/04/2020
| Sujet: Re: GoPro & Linux Ven 21 Juil 2023, 21:47 | |
| Voilà, c'est corrigé, et en ligne.
|
| | | Pulsar33 Accro du forum
Messages : 2806 Âge : 69 Localisation : Gironde VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11) Date d'inscription : 17/11/2015
| Sujet: Re: GoPro & Linux Sam 22 Juil 2023, 08:50 | |
| Bonjour, - progweb a écrit:
- Tu peux maintenant faire un rendu image par image (en png)
Au lieu d'utiliser la commande "video" pour faire un rendu vidéo, utiliser la commande "image" pour un rendu image par image. J'ai testé en mode transparent, ça fonctionne, c'est rapide, mais bien sûr volumineux. Il faudrait que j’enchaîne création des images et génération d'une vidéo à partir d'elles via ffmpeg pour voir si ça a vraiment un intérêt. - progweb a écrit:
- le plus simple, travailler via la commande "telemetry" qui permet d'exploiter les données en CSV
Tu veux dire qu'on peut générer le csv puis ensuite l'utiliser en lieu et place du gpx pour générer la vidéo ? C'est ce que je voulais faire passé un temps mais je n'ai pas réussi. Si c'est le cas, je pourrais essayer de filtrer moi-même les données "à ma façon" Mes premiers essais avec telemetry 2 ou 3 montrent une amélioration mais des incohérences. Par ailleurs, des widgets disparaissent au bout d'un certain temps (vitesse, heure) A compléter suite aux essais futurs Pulsar33 |
| | | Pulsar33 Accro du forum
Messages : 2806 Âge : 69 Localisation : Gironde VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11) Date d'inscription : 17/11/2015
| Sujet: Re: GoPro & Linux Sam 22 Juil 2023, 09:09 | |
| Oupsss ! Le fond vert n'est que sur la première image et le graphisme est "granuleux" La génération d'une vidéo peut se faire avec une commande du genre : - Code:
-
ffmpeg -framerate 1 -r 25 -pattern_type glob -i '*.png' -c:v libx264 -pix_fmt yuv420p out.mp4 Mais ce n'est pas la bonne vitesse malgré framerate et r @+ Pulsar33 |
| | | progweb Posteur d'or
Messages : 577 Localisation : France VPH : ICE VTX Black Date d'inscription : 25/04/2020
| Sujet: Re: GoPro & Linux Sam 22 Juil 2023, 09:13 | |
| - Pulsar33 a écrit:
- Tu veux dire qu'on peut générer le csv puis ensuite l'utiliser en lieu et place du gpx pour générer la vidéo ?
C'est ce que je voulais faire passé un temps mais je n'ai pas réussi. Si c'est le cas, je pourrais essayer de filtrer moi-même les données "à ma façon"
Non la génération des CSV, c'est uniquement pour tester les calculs. D’ailleurs sans filtre, quand on génère le csv pour ton gpx, on voit que ce n'est pas très stable. C'est dû au fait que la vitesse est plutôt faible. Mais effectivement, pouvoir importer les données déjà calculées pourraient être intéressant. Le filtre 2 ’linéaire’ peut générer des incohérences. En effet, le point suivant est déterminé à partir du point courant et du précédent. Donc si tu es en phase d’accélération entre ces 2 points, l’accélération continue pour le point suivant. Or si en fait, tu ralentis, le point suivant sera erroné, et donc réajusté. Le filtre 3 'interpolation’ estime le point courant à partir du précédent et du suivant. Il ne doit donc pas y avoir d'incohérence. Enfin, un filtre est appliqué pour lisser les données (calculé sur 3 points) Dans le cas d’un GPX échantillonné toutes les secondes, ce qui est quasiment ton cas, il ne devrait pratiquement pas y avoir de différences entre les 3 types de calculs 1, 2 ou 3. Seul le filtre de lissage (qui s’applique quelque soit la méthode) va changer quelque chose. |
| | | progweb Posteur d'or
Messages : 577 Localisation : France VPH : ICE VTX Black Date d'inscription : 25/04/2020
| Sujet: Re: GoPro & Linux Sam 22 Juil 2023, 09:32 | |
| - Pulsar33 a écrit:
- Oupsss ! Le fond vert n'est que sur la première image
Tu veux le fond vert que sur la première image ? Dans ce cas tu génères tout en transparent et tu édites la première avec GIMP. Ou tu génères la première avec gpx2video en modifiant le layout.xml en layout-first.xml, puis tu lances la commande en ajoutant "--duration 1000" - Pulsar33 a écrit:
- et le graphisme est "granuleux"
la résolution n'est pas non plus dingue... ici avec une vidéo en 2704x1520 |
| | | Pulsar33 Accro du forum
Messages : 2806 Âge : 69 Localisation : Gironde VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11) Date d'inscription : 17/11/2015
| Sujet: Re: GoPro & Linux Sam 22 Juil 2023, 09:47 | |
| Plusieurs compléments d'information : La position du -r est importante dans la commande ffmpeg pour générer une vidéo à partir des images. Il doit être après le -i - Code:
-
ffmpeg -framerate 1 -pattern_type glob -i '*.png' -r 25 -c:v libx264 -pix_fmt yuv420p out.mp4 Non, je ne veux pas que le fond vert soit sur la première image seulement, c'est ce que j'obtiens avec la commande - Code:
-
/media/DATA/Workbench/gpx2video/build/gpx2video -q -m Jonzac04O.mp4 -g Jonzac04O-VG.gpx --offset 9000 -l layout576p04png.xml --telemetry 2 -o png/image-XXXXXX.png image et le layout : - Code:
-
<widget x="0" y="0" width="720" height="576" position="none" display="true"> <type>image</type> <background-color>#00aa00ff</background-color> </widget> Les widgets disparaissent : 4933 image générées, perte de la pente dès la deuxième image, perte de la vitesse à l'image 001225 Vidéo 576p : ça ne fait quand même pas pitié. Je ne compte pas stocker des vidéos énormes, j'ai un NAS de 8 To qui n'est pas loin de déborder ... Non, il y a une nette différence de finesse entre les tracés générés en mode image et ceux très propres générés en mode vidéo à la même résolution (576p) Oui, ce serait super de pouvoir utiliser le csv à la seconde en lieu et place du gpx A suivre Pulsar33 |
| | | Pulsar33 Accro du forum
Messages : 2806 Âge : 69 Localisation : Gironde VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11) Date d'inscription : 17/11/2015
| Sujet: Re: GoPro & Linux Sam 22 Juil 2023, 11:48 | |
| Mise à jour de mes constats :
- BUG : perte systématique de la piste sonore du milieu de la vidéo jusqu'à la fin (qu'on arrête l'encodage ou qu'on le laisse terminer) - BUG : perte (pseudo)aléatoire de certains widgets (pente, vitesse, durée) visiblement calculés par différence - BUG : le fond vert n'est présent que sur la première image (testé seulement en 576p) en mode image
- Finesse de la trace dans la map fonction de la résolution de la vidéo (actuellement pâteuse en 576p) => ok
- Option rendu sur fond vert dans l'espoir de booster notablement les performances => solution partielle via image puis ffmpeg
- Option Zoom automatique en fonction de la vitesse (4 paramètres) : (Zmax,Zmin) = F(Vmin,Vmax) (augmenter la portée quand on va vite) - Cercler l'icone vélo de jaune (surtout la pointe) au lieu de bleu (actuellement même couleur que la trace) - Option incrustation sans légende ni symbole (format classique pour date, heure et durée, seulement l'unité pour altitude, vitesse, pente, ...) - Utilisation (automatique) au choix d'un gpx ou d'un csv au format que tu génères
@+ Pulsar33 |
| | | progweb Posteur d'or
Messages : 577 Localisation : France VPH : ICE VTX Black Date d'inscription : 25/04/2020
| Sujet: Re: GoPro & Linux Sam 22 Juil 2023, 15:44 | |
| - Pulsar33 a écrit:
- BUG : perte systématique de la piste sonore du milieu de la vidéo jusqu'à la fin (qu'on arrête l'encodage ou qu'on le laisse terminer)
Aujourd'hui, je ne sais pas traiter l'audio Comment je procède.. je récupère les paquets des flux audio & video, quand c'est un packet audio, je le copie sans le modifier. Quand c'est un packet video, je le décompresse, modifie (overlay), puis recompresse. En théorie, tant qu'on traite 100% du fichier en input, ça devrait dupliquer la piste audio. Quand on fait un "ctrl - c", on coupe au milieu, et il faudrait que je décompresse le packet audio, coupe la piste à la bonne longueur, puis recompresse le packet. Si tu as le bug, sur la vidéo complète (c'est que j'ai dû louper un truc - et - c'est du coup un autre bug). Est-ce que tu peux me mettre la vidéo d'origine et celle en résultat. afin que je compare les 2 pistes audio. Je pense qu'il doit manquer un packet (ou des paquets)... Plus l'audio est de basse qualité, plus les packets sont longs en durée, donc quand il en manque un ça se voit, enfin ça s'entend Dans la vidéo de 6 min que tu m'as donnée, j'ai bien le son pendant les 6 minutes. => Contournement, tu peux remplacer la piste audio via la outil ffmpeg. - Pulsar33 a écrit:
- BUG : perte (pseudo)aléatoire de certains widgets (pente, vitesse, durée) visiblement calculés par différence
J'ai mis une correction en ligne, mais je ne sais pas si ça corrige réellement le problème Tous les widgets acceptent les paramètres "at" et "duration" pour indiquer le timestamp à partir duquel il est visible et la durée. Utile pour afficher des photos ou des titres. - Code:
-
<widget x="250" y="450" .... at="1000" duration="9000" display="true">
Je pense que dans ton cas, la valeur n'étant pas indiquée n'est pas initialisée. Du moins, c'est ce que j'ai corrigé. - Pulsar33 a écrit:
- BUG : le fond vert n'est présent que sur la première image (testé seulement en 576p) en mode image
J'espère que c'est le même bug que précédemment Donc peut-être corrigé. - Pulsar33 a écrit:
- Finesse de la trace dans la map fonction de la résolution de la vidéo (actuellement pâteuse en 576p) => ok
Cool, je vais faire en sortie que tu puisses aussi modifier la couleur de la trace. - Pulsar33 a écrit:
- Option rendu sur fond vert dans l'espoir de booster notablement les performances => solution partielle via image puis ffmpeg
Pas sûr que tu gagnes beaucoup de temps, sauf si tu arrives à utiliser l'accélération hardware avec ffmpeg. D'ailleurs va falloir que j'ajoute le supporte nvidia, puisque j'arrive à faire marcher cela enfin ! - Pulsar33 a écrit:
- Option Zoom automatique en fonction de la vitesse (4 paramètres) : (Zmax,Zmin) = F(Vmin,Vmax) (augmenter la portée quand on va vite)
Je vois l'idée. Par contre, est-ce que c'est avec niveau de détail de la carte constant ? zoom: est le niveau de détail des cartes factor: est le zoom que j'applique sur la map. - Pulsar33 a écrit:
- Cercler l'icone vélo de jaune (surtout la pointe) au lieu de bleu (actuellement même couleur que la trace)
Toutes les images utilisées sont dans le dossier "assets". Tu pourrais faire des dossiers : - assets-red - assets-blue .... et avant de lancer gpx2video modifier le lien symbolique sur les assets à utiliser. - Pulsar33 a écrit:
- Option incrustation sans légende ni symbole (format classique pour date, heure et durée, seulement l'unité pour altitude, vitesse, pente, ...)
OK, je te fais cela. - Pulsar33 a écrit:
- Utilisation (automatique) au choix d'un gpx ou d'un csv au format que tu génères
Oui, je vais y penser. Comme je dois ajouter le support du format TCX, je vais ajouter le support des CSV en entrée. |
| | | Pulsar33 Accro du forum
Messages : 2806 Âge : 69 Localisation : Gironde VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11) Date d'inscription : 17/11/2015
| Sujet: Re: GoPro & Linux Sam 22 Juil 2023, 17:17 | |
| Super de tenir compte de mes remarques ! Alors, je viens de finir de générer la vidéo complète avec la version avant tes dernières modifications indiquées ci-dessus - Code:
-
pulsar33@Minerve:...$ /media/DATA/Workbench/gpx2video/build/gpx2video -q -m Jonzac04O.mp4 -g Jonzac04O-VG.gpx --offset 9000 -l layout576p04TO.xml --telemetry 3 -o Jonzac04TO.mp4 video gpx2video v0.0.0 Parsing 'layout576p04TO.xml' layout file Download tile 513 / 513 [##################################################] DONE [FRAME 123308] 01:22:12.330 / 01:22:12.350 | 99% - Remaining time: 00:00:00 123309 frames 720x576 to 720x576 proceed in 04:30:46
Perte de l'heure dès les premières secondes Perte de la vitesse dès les premières minutes Perte de l'audio à 00:43:51 sur 01:22:12 (lecture avec Celluloid). Oui, le contournement je sais faire mais bon ... Comme indiqué plus haut, jusqu'à présent, même en laissant terminer le traitement, je n'ai jamais eu de son sur la deuxième partie La vidéo 6 minutes a été recoupée à partir d'une vidéo intégrale pour rester raisonnable sur le cloud (et surtout pour la durée du transfert) Je ne peux pas te transmettre les vidéos complètes. En 576p pour 1h22 elles font 10 Go Avec un ADSL qui tourne à vitesse réduite à cause de la chaleur (taux d'erreur trop élevé sinon), c'est inenvisageable (même à vitesse normale en hiver d'ailleurs) Il faudrait que je vois sur une vidéo d'origine plus petite ce que ça fait. => à venir C'est une bonne médecine d'initialiser toutes les variables avec des valeurs par défaut, surtout si l'on ne maîtrise pas ce que font les utilisateurs dans leurs fichiers de layout. Pour moi, le zoom se fait à niveau de détail constant dans un système cartographique. Si le détail varie on parle de changement d'échelle (ce que tu fais déjà avec tes paramètres actuels) J'imagine un ratio de 2 ou 3 entre le zoom min et le zoom max. En fait à zoom max, tu as le niveau de détail équivalent à la carte téléchargée. A zoom min, tu augmentes la portée du ratio choisi. C'est pourquoi je t'ai proposé la définition (Zmax,Zmin) = F(Vmin,Vmax) sans oublier un petit hystérésis si tu varies par saut ou un léger filtrage temporel si tu varies continuement (vu l'instabilité de la vitesse) Enfin, c'est mon idée ... Petite question à retardement : pourquoi as-tu besoin de la vitesse pour calculer la pente ? (ce qui augmente a priori l'instabilité) Sauf erreur : pente (%) = 100 x variation d'altitude / distance horizontale Et en approximation au premier ordre à laquelle il faut ajouter la conversion degrés => mètres : Distance horizontale = Racine carrée de (dlat² + (cos(lat) x dlon)²) On n'a peut-être pas besoin d'en faire plus coté précision de la distance, surtout pour des écarts aussi faibles. Non ? Je lance ta nouvelle version dans la soirée et je te dis ... @+ Pulsar33 |
| | | progweb Posteur d'or
Messages : 577 Localisation : France VPH : ICE VTX Black Date d'inscription : 25/04/2020
| Sujet: Re: GoPro & Linux Sam 22 Juil 2023, 17:51 | |
| - Pulsar33 a écrit:
- Petite question à retardement : pourquoi as-tu besoin de la vitesse pour calculer la pente ? (ce qui augmente a priori l'instabilité)
Sauf erreur : pente (%) = 100 x variation d'altitude / distance horizontale Et en approximation au premier ordre à laquelle il faut ajouter la conversion degrés => mètres : Distance horizontale = Racine carrée de (dlat² + (cos(lat) x dlon)²) On n'a peut-être pas besoin d'en faire plus coté précision de la distance, surtout pour des écarts aussi faibles. Non ?
Pour la pente, je n'ai besoin que de la distance et bien sûr de la différence d’élévation. Pour la distance, j'utilise la librairie GeographicLib https://geographiclib.sourceforge.io/ qui est plus précise. Merci pour tous tes tests, je ferai des tests pour le problème de l’audio |
| | | Pulsar33 Accro du forum
Messages : 2806 Âge : 69 Localisation : Gironde VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11) Date d'inscription : 17/11/2015
| Sujet: Re: GoPro & Linux Sam 22 Juil 2023, 19:47 | |
| Bonsoir, - progweb a écrit:
- La pente est une conséquence de la vitesse "instable". Comme tu dis l'élévation est plutôt stable
Ma question à retardement venait de là. On est d'accord, le calcul de la pente n'a rien à voir avec la vitesse. Ok pour la librairie, c'est sûrement parfait, mais est-ce bien utile et quel est le coût en puissance de calcul, je ne sais pas. J'ai lancé avec ta nouvelle version. Je ne perds plus l'heure ni la vitesse dans les premières secondes/minutes. Je laisse aller le traitement jusqu'au bout pour voir si tout est stable hormis le son sur la deuxième moitié (encore 58 minutes de patience) J'ai créé le marker "position.png" de la couleur qui me va Ensuite j'essaierai de faire un vidéo courte pour le problème du son. Et j'essayerai aussi le fond vert en mode image. C'est un plaisir de faire des tests quand il y a du répondant en face. Bonne soirée Pulsar33 PS : C'est ok pour la correction fond vert également |
| | | Contenu sponsorisé
| Sujet: Re: GoPro & Linux | |
| |
| | | | GoPro & Linux | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |
|