{"id":12819,"date":"2025-03-25T07:46:07","date_gmt":"2025-03-25T06:46:07","guid":{"rendered":"https:\/\/infolib.re\/blog\/?p=12819"},"modified":"2026-05-24T10:03:43","modified_gmt":"2026-05-24T08:03:43","slug":"diffuser-un-flux-video-en-direct-sur-le-web","status":"publish","type":"post","link":"https:\/\/infolib.re\/blog\/diffuser-un-flux-video-en-direct-sur-le-web\/","title":{"rendered":"Diffuser un flux vid\u00e9o en direct sur le Web"},"content":{"rendered":"<p>La diffusion d&rsquo;un flux vid\u00e9o en direct sur le Web est surtout utilis\u00e9e pour la vid\u00e9osurveillance ou pour la retransmission d&rsquo;\u00e9v\u00e9nements. Elle permet aussi de d\u00e9couvrir un lieu \u00e0 distance (reportage, visite d&rsquo;usine) ou de faire une manipulation \u00e0 distance (op\u00e9ration chirurgicale). Elle est diff\u00e9rente de la visioconf\u00e9rence, car il n&rsquo;y a g\u00e9n\u00e9ralement qu&rsquo;une seule source vid\u00e9o et la diffusion est publique et accessible en permanence.<\/p>\n<p>&nbsp;<\/p>\n<p>Il existe plusieurs protocoles de communication pour diffuser un flux vid\u00e9o en direct. Les plus performants sont :<\/p>\n<table style=\"width: 99.8567%;\" cellspacing=\"0\" cellpadding=\"7\">\n<tbody>\n<tr>\n<td style=\"width: 11.7647%;\">\n<p align=\"center\"><b>Protocole<\/b><\/p>\n<\/td>\n<td style=\"width: 9.32568%;\">\n<p align=\"center\"><b>Connexion entrante<a class=\"sdfootnoteanc\" href=\"#sdfootnote1sym\" name=\"sdfootnote1anc\"><sup>1<\/sup><\/a><\/b><\/p>\n<\/td>\n<td style=\"width: 17.2884%;\">\n<p align=\"center\"><b>Description<\/b><\/p>\n<\/td>\n<td style=\"width: 17.2884%;\">\n<p align=\"center\"><b>Avantages<\/b><\/p>\n<\/td>\n<td style=\"width: 6.9584%;\">\n<p align=\"center\"><b>Inconv\u00e9nients<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 11.7647%;\">\n<p align=\"center\"><a href=\"https:\/\/w3.org\/TR\/webtransport\/\" target=\"_blank\" rel=\"noopener\">WebTransport<\/a>, bas\u00e9 sur HTTP\/3 et <a href=\"https:\/\/quicwg.org\" target=\"_blank\" rel=\"noopener\">QUIC<\/a><\/p>\n<\/td>\n<td style=\"background-color: #ccffcc; width: 9.32568%;\" bgcolor=\"#c5e0b3\">\n<p align=\"center\">NON si serveur public<\/p>\n<\/td>\n<td style=\"width: 17.2884%;\">\n<p align=\"left\">\n<\/td>\n<td style=\"width: 17.2884%;\">\n<p align=\"left\"><span style=\"background-color: #ccffcc;\">Latence extr\u00eamement faible.<\/span><\/p>\n<\/td>\n<td style=\"width: 6.9584%;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 11.7647%;\">\n<p align=\"center\"><a href=\"https:\/\/webrtc.org\/\" target=\"_blank\" rel=\"noopener\">WebRTC<\/a><\/p>\n<\/td>\n<td style=\"background-color: #ccffcc; width: 9.32568%;\" bgcolor=\"#c5e0b3\">\n<p align=\"center\">NON<\/p>\n<\/td>\n<td style=\"width: 17.2884%;\">\n<p align=\"left\">Communications client-serveur ou pair-\u00e0-pair. Utilise plusieurs protocoles dont RTP (Real-time Transport Protocol).<\/p>\n<\/td>\n<td style=\"width: 17.2884%;\" valign=\"top\">\n<p align=\"left\"><span style=\"background-color: #ccffcc;\">Latence tr\u00e8s faible. Int\u00e9gr\u00e9 dans les navigateurs web.<br \/>\n<\/span><\/p>\n<\/td>\n<td style=\"width: 6.9584%;\" valign=\"top\"><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 11.7647%;\">\n<p align=\"center\">RTMP<\/p>\n<\/td>\n<td style=\"background-color: #ccffcc; width: 9.32568%;\" bgcolor=\"#c5e0b3\">\n<p align=\"center\">NON<\/p>\n<\/td>\n<td style=\"width: 17.2884%;\">Client RTMP r\u00e9pandu dans les cam\u00e9ras en r\u00e9seau (cam\u00e9ras IP).<\/td>\n<td style=\"width: 17.2884%;\" valign=\"top\">Latence faible.<\/td>\n<td style=\"background-color: #ffcccc; width: 6.9584%;\" valign=\"top\" bgcolor=\"#ff5050\">\n<p align=\"left\">Transport par TCP et non UDP. Incompatible avec HTML5.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 11.7647%;\">\n<p align=\"center\">RTSP<\/p>\n<\/td>\n<td style=\"background-color: #ffcccc; width: 9.32568%;\" bgcolor=\"#ff5050\">\n<p align=\"center\">OUI<\/p>\n<\/td>\n<td style=\"width: 17.2884%;\">\n<p align=\"left\">Serveur RTSP r\u00e9pandu dans les cam\u00e9ras IP. RTSP est g\u00e9n\u00e9ralement utilis\u00e9 avec le protocole RTP qui transmet le flux vid\u00e9o de la cam\u00e9ra.<\/p>\n<\/td>\n<td style=\"width: 17.2884%;\" valign=\"top\">\n<p align=\"left\"><span style=\"background-color: #ccffcc;\">Permet de commander les cam\u00e9ras IP \u00e0 distance<\/span> (lecture, pause&#8230;).<\/p>\n<\/td>\n<td style=\"width: 6.9584%;\" valign=\"top\"><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 11.7647%;\">\n<p align=\"center\"><a href=\"https:\/\/srtalliance.org\/\" target=\"_blank\" rel=\"noopener\">SRT<\/a><\/p>\n<\/td>\n<td style=\"background-color: #ccffcc; width: 9.32568%;\" bgcolor=\"#c5e0b3\">\n<p align=\"center\">NON<\/p>\n<\/td>\n<td style=\"width: 17.2884%;\"><\/td>\n<td style=\"width: 17.2884%;\" valign=\"top\">\n<p align=\"left\">Latence faible.<\/p>\n<\/td>\n<td style=\"width: 6.9584%;\" valign=\"top\"><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 11.7647%;\">\n<p align=\"center\"><a href=\"https:\/\/rist.tv\/\" target=\"_blank\" rel=\"noopener\">RIST<\/a><\/p>\n<\/td>\n<td style=\"background-color: #ccffcc; width: 9.32568%;\" bgcolor=\"#c5e0b3\">\n<p align=\"center\">NON<\/p>\n<\/td>\n<td style=\"width: 17.2884%;\"><\/td>\n<td style=\"width: 17.2884%;\" valign=\"top\">\n<p align=\"left\">Latence faible.<br \/>\nMeilleures performances que SRT en haute d\u00e9finition.<\/p>\n<\/td>\n<td style=\"width: 6.9584%;\" valign=\"top\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a class=\"sdfootnotesym\" href=\"#sdfootnote1anc\" name=\"sdfootnote1sym\">1<\/a> Connexion entrante : cela n\u00e9cessite la mise en place de moyens de s\u00e9curisation du serveur situ\u00e9 dans le r\u00e9seau priv\u00e9 (isolation, filtrage des flux\u2026), en plus du param\u00e9trage d\u2019un routeur, d\u2019un pare-feu, voire d\u2019un proxy. Il vaut mieux utiliser un protocole avec une connexion sortante, vers un serveur situ\u00e9 en dehors du r\u00e9seau priv\u00e9.<\/p>\n<p>Les protocoles RTMP (<em>Real Time Messaging Protocol<\/em>), SRT (<em>Secure Reliable Transport<\/em>), RIST (<em>Reliable Internet Stream Transport<\/em>) ou WebRTC permettent de \u00ab pousser \u00bb un flux vid\u00e9o vers une plateforme de diffusion en direct. Lorsqu&rsquo;une application ou une page web demande le flux vid\u00e9o \u00e0 la plateforme, pour l&rsquo;afficher, la plateforme lui envoie le flux en continu (protocole WebRTC) ou d\u00e9coup\u00e9 en segments (protocoles HLS, Low-Latency HLS, MPEG-DASH, LLDASH) :<\/p>\n<p><a href=\"https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/03\/Flux-video.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-12826 size-full\" src=\"https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/03\/Flux-video.png?_t=1742885675\" alt=\"Flux vid\u00e9o\" width=\"1123\" height=\"612\" srcset=\"https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/03\/Flux-video.png 1123w, https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/03\/Flux-video-300x163.png 300w, https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/03\/Flux-video-1024x558.png 1024w, https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/03\/Flux-video-768x419.png 768w, https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/03\/Flux-video-495x270.png 495w\" sizes=\"auto, (max-width: 1123px) 100vw, 1123px\" \/><\/a><span style=\"background-color: #ffff00;\">Attention<\/span> : suivant les protocoles utilis\u00e9s, la latence peut d\u00e9passer 30 secondes. C\u2019est l\u2019\u00e9cart entre le moment o\u00f9 on filme avec la cam\u00e9ra et le moment o\u00f9 on affiche la vid\u00e9o dans une page web. HLS (<em>HTTP Live Streaming<\/em>) et MPEG-DASH (<em>Dynamic Adaptive Streaming over HTTP<\/em>) ont une latence de 20 \u00e0 30 secondes, due \u00e0 la transmission du flux vid\u00e9o en segments. RTMP, RTSP\/RTP (<em>Real Time Streaming Protocol<\/em>), SRT, RIST, LLDASH et Low-Latency HLS ont une latence d\u2019environ 3 secondes. WebRTC a une latence de moins d\u2019une seconde. Il faut donc v\u00e9rifier les protocoles utilisables avec la plateforme de diffusion.<\/p>\n<p>Pour \u00e9conomiser la bande passante, il faut compresser le flux vid\u00e9o avec un encodeur performant : <a href=\"https:\/\/av2.aomedia.org\" target=\"_blank\" rel=\"noopener\">AV2<\/a>, <a href=\"https:\/\/aomedia.org\/specifications\/av1\/\" target=\"_blank\" rel=\"noopener\">AV1<\/a> ou sinon, <a href=\"https:\/\/www.hhi.fraunhofer.de\/en\/departments\/vca\/technologies-and-solutions\/h266-vvc.html\" target=\"_blank\" rel=\"noopener\">H.266\/VVC<\/a> (<em>Versatile Video Coding<\/em>) ou <a href=\"https:\/\/lcevc.org\" target=\"_blank\" rel=\"noopener\">MPEG-5 (LCEVC)<\/a>. Les encodeurs <a href=\"https:\/\/www.webmproject.org\/vp9\/\" target=\"_blank\" rel=\"noopener\">VP9<\/a> et <a href=\"https:\/\/www.hhi.fraunhofer.de\/en\/departments\/vca\/technologies-and-solutions\/h265-hevc.html\" target=\"_blank\" rel=\"noopener\">H.265\/HEVC<\/a> (<em>High Efficiency Video Coding<\/em>) sont moins performants, les encodeurs <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc6386\" target=\"_blank\" rel=\"noopener\">VP8<\/a> et <a href=\"https:\/\/www.hhi.fraunhofer.de\/en\/departments\/vca\/technologies-and-solutions\/h264-avc.html\" target=\"_blank\" rel=\"noopener\">H.264\/AVC<\/a> le sont encore moins. Voir <a href=\"https:\/\/lafibre.info\/tv-numerique-hd-3d\/comparer-h-264-vp9-av1\/\" target=\"_blank\" rel=\"noopener\">Vid\u00e9os de test H.264, HEVC, VP9 et AV1 du 320p \u00e0 la 8K<\/a>.<\/p>\n<p>Pour savoir quels encodages\/d\u00e9codages peuvent \u00eatre faits sous Linux par votre carte graphique, installez le paquet vainfo :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-12849 size-full\" src=\"https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/03\/vainfo.png?_t=1743252260\" alt=\"vainfo\" width=\"654\" height=\"476\" srcset=\"https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/03\/vainfo.png 654w, https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/03\/vainfo-300x218.png 300w, https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/03\/vainfo-371x270.png 371w\" sizes=\"auto, (max-width: 654px) 100vw, 654px\" \/><\/p>\n<p>Il peut \u00eatre int\u00e9ressant d\u2019utiliser le protocole MQTT coupl\u00e9 avec le syst\u00e8me de commande d\u2019une cam\u00e9ra (<a href=\"https:\/\/www.onvif.org\" target=\"_blank\" rel=\"noopener\">ONVIF<\/a>, API HTTP&#8230;) pour l\u2019allumer\/\u00e9teindre depuis Internet, zoomer et la faire pivoter.<\/p>\n<p>&nbsp;<\/p>\n<p>Pour diffuser le flux vid\u00e9o d&rsquo;une cam\u00e9ra en WebRTC :<\/p>\n<ul>\n<li><a href=\"https:\/\/ffmpeg.org\/\" target=\"_blank\" rel=\"noopener\">FFmpeg<\/a> g\u00e9n\u00e8re un flux RTMP, SRT, RIST ou <a href=\"https:\/\/www.phoronix.com\/news\/FFmpeg-Lands-WHIP-Muxer\" target=\"_blank\" rel=\"noopener\">WebRTC<\/a> \u00e0 partir du flux vid\u00e9o brut issu d\u2019une cam\u00e9ra.<\/li>\n<li>Le logiciel de capture et de diffusion de flux vid\u00e9o <a href=\"https:\/\/obsproject.com\" target=\"_blank\" rel=\"noopener\">OBS Studio<\/a> fait de m\u00eame, ainsi qu&rsquo;\u00e0 partir d\u2019une capture d\u2019\u00e9cran\/fen\u00eatre.<\/li>\n<li><a href=\"https:\/\/gstreamer.freedesktop.org\/\" target=\"_blank\" rel=\"noopener\">GStreamer<\/a> g\u00e9n\u00e8re un flux RTMP, SRT, RIST ou WebRTC \u00e0 partir du flux vid\u00e9o brut issu d\u2019une cam\u00e9ra.<\/li>\n<li><a href=\"https:\/\/softvelum.com\/larix\/\" target=\"_blank\" rel=\"noopener\">Larix Broadcaster<\/a> g\u00e9n\u00e8re un flux vid\u00e9o depuis un smartphone.<\/li>\n<li><a href=\"https:\/\/github.com\/sepfy\/libpeer\" target=\"_blank\" rel=\"noopener\">libpeer<\/a> : librairie WebRTC en C.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Serveurs WebRTC, plateformes de diffusion de flux vid\u00e9o :<\/p>\n<ul>\n<li><a href=\"https:\/\/swmansion.com\" target=\"_blank\" rel=\"noopener\">Software Mansion<\/a> con\u00e7oit des plateformes de diffusion de flux vid\u00e9o sur mesure (serveur WebRTC + interface web de gestion), bas\u00e9es sur le cadriciel de d\u00e9veloppement <a href=\"https:\/\/github.com\/membraneframework\/membrane_core\" target=\"_blank\" rel=\"noopener\">Membrane<\/a>. Membrane est par exemple utilis\u00e9 avec le serveur <a href=\"https:\/\/github.com\/fishjam-dev\/fishjam\" target=\"_blank\" rel=\"noopener\">Fishjam<\/a>.<\/li>\n<li><a href=\"https:\/\/github.com\/ant-media\/Ant-Media-Server\" target=\"_blank\" rel=\"noopener\">Ant Media Server<\/a>.<\/li>\n<li><a href=\"https:\/\/github.com\/AlexxIT\/go2rtc\" target=\"_blank\" rel=\"noopener\">go2rtc<\/a>.<\/li>\n<li><a href=\"https:\/\/kerberos.io\/product\/agent\/\" target=\"_blank\" rel=\"noopener\">Kerberos Agent<\/a>. Plateforme de vid\u00e9osurveillance.<\/li>\n<li><a href=\"https:\/\/www.meetecho.com\" target=\"_blank\" rel=\"noopener\">Meetecho<\/a> con\u00e7oit des plateformes de diffusion de flux vid\u00e9o sur mesure (serveur WebRTC + interface web de gestion), bas\u00e9es sur le serveur <a href=\"https:\/\/janus.conf.meetecho.com\" target=\"_blank\" rel=\"noopener\">Janus<\/a>.<\/li>\n<li><a href=\"https:\/\/github.com\/bluenviron\/mediamtx\" target=\"_blank\" rel=\"noopener\">MediaMTX<\/a>. Redirige et convertit les flux vid\u00e9o, sans transcodage.<\/li>\n<li><a href=\"https:\/\/github.com\/DDVTECH\/mistserver\" target=\"_blank\" rel=\"noopener\">MistServer<\/a>.<\/li>\n<li>Cadriciel de d\u00e9veloppement <a href=\"https:\/\/openvidu.io\" target=\"_blank\" rel=\"noopener\">openVidu<\/a>. Utilise les serveurs WebRTC <a href=\"https:\/\/mediasoup.org\" target=\"_blank\" rel=\"noopener\">Mediasoup<\/a> et <a href=\"https:\/\/github.com\/livekit\/livekit\" target=\"_blank\" rel=\"noopener\">LiveKit<\/a>.<\/li>\n<li><a href=\"https:\/\/airensoft.com\/ome\" target=\"_blank\" rel=\"noopener\">OvenMediaEngine<\/a>.<\/li>\n<li><a href=\"https:\/\/github.com\/peers\/peerjs-server\" target=\"_blank\" rel=\"noopener\">PeerServer<\/a>.<\/li>\n<li>La plateforme\u00a0<a href=\"https:\/\/datarhei.com\" target=\"_blank\" rel=\"noopener\">Restreamer<\/a> est tr\u00e8s int\u00e9ressante mais <a href=\"https:\/\/github.com\/datarhei\/restreamer\/issues\/673\" target=\"_blank\" rel=\"noopener\">ne propose pas encore WebRTC<\/a>.<\/li>\n<li><a href=\"https:\/\/ossrs.io\" target=\"_blank\" rel=\"noopener\">SRS<\/a>.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Lecteurs de flux vid\u00e9o WebRTC int\u00e9grables dans une page web :<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/Eyevinn\/webrtc-player\" target=\"_blank\" rel=\"noopener\">WebRTC player<\/a> affiche le flux diffus\u00e9 par n&rsquo;importe quel serveur.<\/li>\n<li>L&rsquo;extension WordPress <a href=\"https:\/\/github.com\/ossrs\/WordPress-Plugin-SrsPlayer\" target=\"_blank\" rel=\"noopener\">SRS Player<\/a> affiche le flux diffus\u00e9 par n&rsquo;importe quel serveur.<\/li>\n<li><a href=\"https:\/\/github.com\/ant-media\/videojs-webrtc-plugin\" target=\"_blank\" rel=\"noopener\">videojs-webrtc-plugin<\/a> affiche le flux diffus\u00e9 par un serveur Ant Media Server.<\/li>\n<li><a href=\"https:\/\/github.com\/OvenMediaLabs\/OvenPlayer\" target=\"_blank\" rel=\"noopener\">OvenPlayer<\/a> affiche le flux diffus\u00e9 par un serveur OvenMediaEngine. <a href=\"https:\/\/demo.ovenplayer.com\/\" target=\"_blank\" rel=\"noopener\">D\u00e9monstration<\/a>.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/livekit.io\/webrtc\/browser-test\" target=\"_blank\" rel=\"noopener\">Testez si votre navigateur web est compatible WebRTC, AV1, etc.<\/a><\/p>\n<p>Sch\u00e9ma Flux vid\u00e9o : fichier <a href=\"https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/03\/Flux-video.odg\">LibreOffice<\/a>.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La diffusion d&rsquo;un flux vid\u00e9o en direct sur le Web est surtout utilis\u00e9e pour la vid\u00e9osurveillance ou pour la retransmission d&rsquo;\u00e9v\u00e9nements. Elle permet aussi de d\u00e9couvrir un lieu \u00e0 distance (reportage, visite d&rsquo;usine) ou de faire une manipulation \u00e0 distance (op\u00e9ration chirurgicale). Elle est diff\u00e9rente de la visioconf\u00e9rence, car il n&rsquo;y a g\u00e9n\u00e9ralement qu&rsquo;une seule source vid\u00e9o et la diffusion est publique et accessible en permanence. &nbsp; Il existe plusieurs protocoles de communication pour diffuser un flux vid\u00e9o en direct&#8230;.<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/infolib.re\/blog\/diffuser-un-flux-video-en-direct-sur-le-web\/\">Lire la suite<span class=\"screen-reader-text\"> Lire la suite<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[725,726,570,575,552,592,572,576,574,569,566,562,567,559,730,728,729,564,560,573,571,731,557,554,558,555,556,568,565,563,553],"class_list":["post-12819","post","type-post","status-publish","format-standard","hentry","category-articles-publics","tag-av1","tag-av2","tag-avc","tag-diffusion","tag-direct","tag-faible-latence","tag-ffmpeg","tag-flux-video","tag-gstreamer","tag-h-264","tag-h-265","tag-h-266","tag-hevc","tag-hls","tag-lcevc","tag-lldash","tag-low-latency-hls","tag-mpeg-5","tag-mpeg-dash","tag-obs-sudio","tag-onvif","tag-quic","tag-rist","tag-rtmp","tag-rtp","tag-rtsp","tag-srt","tag-vp8","tag-vp9","tag-vvc","tag-webrtc"],"_links":{"self":[{"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/posts\/12819","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/comments?post=12819"}],"version-history":[{"count":1,"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/posts\/12819\/revisions"}],"predecessor-version":[{"id":15107,"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/posts\/12819\/revisions\/15107"}],"wp:attachment":[{"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/media?parent=12819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/categories?post=12819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/tags?post=12819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}