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
 
AccueilPortailRechercherDernières imagesS'enregistrerConnexion
Le Deal du moment : -20%
Ecran PC GIGABYTE 28″ LED M28U 4K ( IPS, 1 ms, ...
Voir le deal
399 €

 

 GoPro & Linux

Aller en bas 
+6
JeanMarc38
Pulsar33
orion
Lud'O
claymore
progweb
10 participants
Aller à la page : Précédent  1 ... 5 ... 7, 8, 9 ... 14  Suivant
AuteurMessage
progweb
Posteur d'argent



Messages : 499
Localisation : France
VPH : ICE VTX Black
Date d'inscription : 25/04/2020

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptyJeu 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.
Revenir en haut Aller en bas
Pulsar33
Accro du forum
Pulsar33


Messages : 2644
Âge : 68
Localisation : Gironde
VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11)
Date d'inscription : 17/11/2015

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptyVen 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 :
GoPro & Linux - Page 8 Jonzac04-O-VGF

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
Revenir en haut Aller en bas
Pulsar33
Accro du forum
Pulsar33


Messages : 2644
Âge : 68
Localisation : Gironde
VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11)
Date d'inscription : 17/11/2015

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptyVen 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
Revenir en haut Aller en bas
Pulsar33
Accro du forum
Pulsar33


Messages : 2644
Âge : 68
Localisation : Gironde
VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11)
Date d'inscription : 17/11/2015

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptySam 15 Juil 2023, 12:24

Bonjour,

Confirmation du bug cité page précédente : Perte du son depuis ici jusqu'à la fin
GoPro & Linux - Page 8 Perte-Du-Son-Depuis-La-Jusqua-La-Fin

Cordialement
Pulsar33


Dernière édition par Pulsar33 le Sam 09 Sep 2023, 20:22, édité 1 fois
Revenir en haut Aller en bas
progweb
Posteur d'argent



Messages : 499
Localisation : France
VPH : ICE VTX Black
Date d'inscription : 25/04/2020

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptyVen 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 / image

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.

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 avgridespeed

Un nouveau type de widget permettant d'afficher la vitesse moyenne roulée. (donc sans prendre en compte les zones d'arrêt).


Track / Map

Tu 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.
Revenir en haut Aller en bas
Pulsar33
Accro du forum
Pulsar33


Messages : 2644
Âge : 68
Localisation : Gironde
VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11)
Date d'inscription : 17/11/2015

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptyVen 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
Revenir en haut Aller en bas
Pulsar33
Accro du forum
Pulsar33


Messages : 2644
Âge : 68
Localisation : Gironde
VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11)
Date d'inscription : 17/11/2015

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptyVen 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...
Revenir en haut Aller en bas
progweb
Posteur d'argent



Messages : 499
Localisation : France
VPH : ICE VTX Black
Date d'inscription : 25/04/2020

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptyVen 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
Revenir en haut Aller en bas
Pulsar33
Accro du forum
Pulsar33


Messages : 2644
Âge : 68
Localisation : Gironde
VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11)
Date d'inscription : 17/11/2015

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptyVen 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
Revenir en haut Aller en bas
progweb
Posteur d'argent



Messages : 499
Localisation : France
VPH : ICE VTX Black
Date d'inscription : 25/04/2020

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptyVen 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.
Revenir en haut Aller en bas
Pulsar33
Accro du forum
Pulsar33


Messages : 2644
Âge : 68
Localisation : Gironde
VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11)
Date d'inscription : 17/11/2015

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptyVen 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
Revenir en haut Aller en bas
Pulsar33
Accro du forum
Pulsar33


Messages : 2644
Âge : 68
Localisation : Gironde
VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11)
Date d'inscription : 17/11/2015

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptyVen 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  Razz
Bonne soirée
Pulsar33
Revenir en haut Aller en bas
progweb
Posteur d'argent



Messages : 499
Localisation : France
VPH : ICE VTX Black
Date d'inscription : 25/04/2020

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptyVen 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é.
Revenir en haut Aller en bas
Pulsar33
Accro du forum
Pulsar33


Messages : 2644
Âge : 68
Localisation : Gironde
VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11)
Date d'inscription : 17/11/2015

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptyVen 21 Juil 2023, 21:24

GoPro & Linux - Page 8 Cool ça fonctionne nettement mieux GoPro & Linux - Page 8 Cool
Bravo pour ton efficacité !
Je laisse tourner
Bonne soirée et merci
Pulsar33
Revenir en haut Aller en bas
progweb
Posteur d'argent



Messages : 499
Localisation : France
VPH : ICE VTX Black
Date d'inscription : 25/04/2020

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptyVen 21 Juil 2023, 21:47

Voilà, c'est corrigé, et en ligne.
Revenir en haut Aller en bas
Pulsar33
Accro du forum
Pulsar33


Messages : 2644
Âge : 68
Localisation : Gironde
VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11)
Date d'inscription : 17/11/2015

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptySam 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
Revenir en haut Aller en bas
Pulsar33
Accro du forum
Pulsar33


Messages : 2644
Âge : 68
Localisation : Gironde
VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11)
Date d'inscription : 17/11/2015

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptySam 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

Revenir en haut Aller en bas
progweb
Posteur d'argent



Messages : 499
Localisation : France
VPH : ICE VTX Black
Date d'inscription : 25/04/2020

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptySam 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.

Revenir en haut Aller en bas
progweb
Posteur d'argent



Messages : 499
Localisation : France
VPH : ICE VTX Black
Date d'inscription : 25/04/2020

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptySam 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

GoPro & Linux - Page 8 Test-010
Revenir en haut Aller en bas
Pulsar33
Accro du forum
Pulsar33


Messages : 2644
Âge : 68
Localisation : Gironde
VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11)
Date d'inscription : 17/11/2015

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptySam 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
Revenir en haut Aller en bas
Pulsar33
Accro du forum
Pulsar33


Messages : 2644
Âge : 68
Localisation : Gironde
VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11)
Date d'inscription : 17/11/2015

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptySam 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
Revenir en haut Aller en bas
progweb
Posteur d'argent



Messages : 499
Localisation : France
VPH : ICE VTX Black
Date d'inscription : 25/04/2020

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptySam 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 Smile
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 Smile

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 Sad

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 Smile 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.
Revenir en haut Aller en bas
Pulsar33
Accro du forum
Pulsar33


Messages : 2644
Âge : 68
Localisation : Gironde
VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11)
Date d'inscription : 17/11/2015

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptySam 22 Juil 2023, 17:17

GoPro & Linux - Page 8 Cool Super de tenir compte de mes remarques ! GoPro & Linux - Page 8 Cool

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
Revenir en haut Aller en bas
progweb
Posteur d'argent



Messages : 499
Localisation : France
VPH : ICE VTX Black
Date d'inscription : 25/04/2020

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptySam 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
Revenir en haut Aller en bas
Pulsar33
Accro du forum
Pulsar33


Messages : 2644
Âge : 68
Localisation : Gironde
VPH : VM : CAB BIKE HAWK (+BBS01, +Nuvinci 360) ___ TRIKE : Specbike Technics Comfort (+BAFANG M400 +Alfine 11)
Date d'inscription : 17/11/2015

GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 EmptySam 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 GoPro & Linux - Page 8 Cool

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 GoPro & Linux - Page 8 Cool
Revenir en haut Aller en bas
Contenu sponsorisé





GoPro & Linux - Page 8 Empty
MessageSujet: Re: GoPro & Linux   GoPro & Linux - Page 8 Empty

Revenir en haut Aller en bas
 
GoPro & Linux
Revenir en haut 
Page 8 sur 14Aller à la page : Précédent  1 ... 5 ... 7, 8, 9 ... 14  Suivant
 Sujets similaires
-
» GNU/Linux!!
» CAO sous Linux
» GPS compatible linux Ubuntu
» Mac ou Pc ?
» navigateur links sous Linux

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le Forum du Vélorizontal, vélo couché et autres véhicules à propulsion humaine :: Ravito :: Le Bar-
Sauter vers: