{"id":491,"date":"2021-10-19T16:00:25","date_gmt":"2021-10-19T16:00:25","guid":{"rendered":"https:\/\/fde.cat\/index.php\/2021\/10\/19\/rtmp-go-away-lossless-reconnections-for-live-streaming\/"},"modified":"2021-10-19T16:00:25","modified_gmt":"2021-10-19T16:00:25","slug":"rtmp-go-away-lossless-reconnections-for-live-streaming","status":"publish","type":"post","link":"https:\/\/fde.cat\/index.php\/2021\/10\/19\/rtmp-go-away-lossless-reconnections-for-live-streaming\/","title":{"rendered":"RTMP Go Away: Lossless reconnections for live streaming"},"content":{"rendered":"<h2><span>What it is:<\/span><\/h2>\n<p><a href=\"https:\/\/www.adobe.com\/content\/dam\/acom\/en\/devnet\/rtmp\/pdf\/rtmp_specification_1.0.pdf\"><span>Real Time Messaging Protocol<\/span><\/a><span> (RTMP) is a popular media streaming protocol that uses Transmission Control Protocol (TCP) persistent connections. When a connection between a live-streaming client and the platform is interrupted, data from the live event is lost until the client can reconnect to a new server. RTMP Go Away is a new mechanism that allows the live server to send a signal to the client indicating that it needs to terminate the existing connection. This allows the client to create a new connection at a logical media boundary, incurring zero data loss.<\/span><\/p>\n<h2><span>What it does:<\/span><\/h2>\n<p><span>RTMP Go Away builds on top of the RTMP specification to enable live streaming clients and servers to communicate about the Go Away feature and provides a reference client implementation.<\/span><\/p>\n<p>Spec updates:<span> Adds a new field to the RTMP connect packet to announce feature support and creates a new protocol message type representing the go away signal.<\/span><br \/>\nReference algorithm:<span> Provides a reference implementation in <\/span><a href=\"https:\/\/www.ffmpeg.org\/\"><span>FFmpeg<\/span><\/a><span> that, upon receiving a go away signal, enables the client to reconnect at the next keyframe and incur zero data loss.<\/span><br \/>\nSafe rollout:<span> Live servers should send the new go away message only to clients that indicated support of the new feature, ensuring that only clients properly handling the new signal will receive it.<\/span><\/p>\n<h2><span>Why it matters:<\/span><\/h2>\n<p><span>When RTMP connections are terminated by live servers, it can take streaming clients up to 20 seconds to detect the disconnection and reconnect. During that time, valuable live content is lost, sometimes forever. RTMP Go Away provides a framework for live servers to communicate that a known interruption (e.g., host maintenance) is coming and enables streaming clients to gracefully reconnect while incurring zero data loss.<\/span><\/p>\n<h2><span>Get it on GitHub:<\/span><\/h2>\n<p><a href=\"https:\/\/github.com\/facebook\/rtmp-go-away\"><span>RTMP Go Away<\/span><\/a><\/p>\n<p>The post <a href=\"https:\/\/engineering.fb.com\/2021\/10\/19\/open-source\/rtmp-go-away\/\">RTMP Go Away: Lossless reconnections for live streaming<\/a> appeared first on <a href=\"https:\/\/engineering.fb.com\/\">Facebook Engineering<\/a>.<\/p>\n<p>Facebook Engineering<\/p>","protected":false},"excerpt":{"rendered":"<p>What it is: Real Time Messaging Protocol (RTMP) is a popular media streaming protocol that uses Transmission Control Protocol (TCP) persistent connections. When a connection between a live-streaming client and the platform is interrupted, data from the live event is lost until the client can reconnect to a new server. RTMP Go Away is a&hellip; <a class=\"more-link\" href=\"https:\/\/fde.cat\/index.php\/2021\/10\/19\/rtmp-go-away-lossless-reconnections-for-live-streaming\/\">Continue reading <span class=\"screen-reader-text\">RTMP Go Away: Lossless reconnections for live streaming<\/span><\/a><\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","footnotes":""},"categories":[7],"tags":[],"class_list":["post-491","post","type-post","status-publish","format-standard","hentry","category-technology","entry"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":833,"url":"https:\/\/fde.cat\/index.php\/2024\/03\/06\/making-messaging-interoperability-with-third-parties-safe-for-users-in-europe\/","url_meta":{"origin":491,"position":0},"title":"Making messaging interoperability with third parties safe for users in Europe","date":"March 6, 2024","format":false,"excerpt":"To comply with a new EU law, the Digital Markets Act (DMA), which comes into force on March 7th, we\u2019ve made major changes to WhatsApp and Messenger to enable interoperability with third-party messaging services.\u00a0 We\u2019re sharing how we enabled third-party interoperability (interop) while maintaining end-to-end encryption (E2EE) and other privacy\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":661,"url":"https:\/\/fde.cat\/index.php\/2022\/12\/12\/open-sourcing-anonymous-credential-service\/","url_meta":{"origin":491,"position":1},"title":"Open-sourcing Anonymous Credential Service","date":"December 12, 2022","format":false,"excerpt":"Meta has open-sourced Anonymous Credential Service (ACS), a highly available multitenant service that allows clients to authenticate in a de-identified manner. ACS enhances privacy and security while also being compute-conscious. By open-sourcing and fostering a community for ACS, we believe we can accelerate the pace of innovation in de-identified authentication.\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":821,"url":"https:\/\/fde.cat\/index.php\/2024\/02\/07\/simple-precision-time-protocol-at-meta\/","url_meta":{"origin":491,"position":2},"title":"Simple Precision Time Protocol at Meta","date":"February 7, 2024","format":false,"excerpt":"While deploying Precision Time Protocol (PTP) at Meta, we\u2019ve developed a simplified version of the protocol (Simple Precision Time Protocol \u2013 SPTP), that can offer the same level of clock synchronization as unicast PTPv2 more reliably and with fewer resources. In our own tests, SPTP boasts comparable performance to PTP,\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":559,"url":"https:\/\/fde.cat\/index.php\/2022\/03\/30\/how-meta-enables-de-identified-authentication-at-scale\/","url_meta":{"origin":491,"position":3},"title":"How Meta enables de-identified authentication at scale","date":"March 30, 2022","format":false,"excerpt":"Data minimization \u2014 collecting the minimum amount of data required to support our services \u2014 is one of our core principles at Meta as we continue developing new privacy-enhancing technologies (PETs). We are constantly seeking ways to improve privacy and protect user data on our family of products. Previously, we\u2019ve\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":595,"url":"https:\/\/fde.cat\/index.php\/2022\/06\/08\/introducing-zelos-a-zookeeper-api-leveraging-delos\/","url_meta":{"origin":491,"position":4},"title":"Introducing Zelos: A ZooKeeper API leveraging Delos","date":"June 8, 2022","format":false,"excerpt":"Within large-scale services, durable storage, distributed leases, and coordination primitives such as distributed locks, semaphores, and events should be strongly consistent. At Meta, we have historically used Apache ZooKeeper as a centralized service for these primitives. However, as Meta\u2019s workload has scaled, we\u2019ve found ourselves pushing the limits of ZooKeeper\u2019s\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":702,"url":"https:\/\/fde.cat\/index.php\/2023\/04\/13\/how-device-verification-protects-your-whatsapp-account\/","url_meta":{"origin":491,"position":5},"title":"How Device Verification protects your WhatsApp account","date":"April 13, 2023","format":false,"excerpt":"WhatsApp has launched a new security feature that further helps prevent attackers from using vectors like on-device malware. This security feature, called Device Verification, requires no action or additional steps from users and helps protect your account. This feature is part of our broader work to increase security for our\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts\/491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/comments?post=491"}],"version-history":[{"count":0,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts\/491\/revisions"}],"wp:attachment":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/media?parent=491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/categories?post=491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/tags?post=491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}