{"id":1096,"date":"2025-03-30T12:59:17","date_gmt":"2025-03-30T11:59:17","guid":{"rendered":"https:\/\/mattiesworld.gotdns.org\/weblog\/?p=1096"},"modified":"2025-03-30T13:00:24","modified_gmt":"2025-03-30T12:00:24","slug":"cord-cutting-the-final-thread","status":"publish","type":"post","link":"https:\/\/mattiesworld.gotdns.org\/weblog\/2025\/03\/30\/cord-cutting-the-final-thread\/","title":{"rendered":"Cord cutting &#8211; The final thread"},"content":{"rendered":"\n<p>10 years ago, I cancelled my cable TV subscription and switched to internet streaming-only using the first Android TV device, Google&#8217;s <a href=\"https:\/\/en.wikipedia.org\/wiki\/Nexus_Player\" data-type=\"link\" data-id=\"https:\/\/en.wikipedia.org\/wiki\/Nexus_Player\">Nexus Player<\/a>. It was a great cost saver. I never watched live TV to begin with, as I always wanted to skip forward during ads. My new home was Netflix and having no ads was a breath of fresh air. <\/p>\n\n\n\n<p>In the beginning, I would miss some Belgian content here and there, but by now, every major Belgian TV channel has a free app streaming live TV and on-demand content (with paid options to reduce ads or watch additional content).<\/p>\n\n\n\n<p>My parents barely watch TV except for the news, so I suggested to make some savings and cancel their overpriced Telenet cable TV subscription.  It turns out there&#8217;s only 1 problem: they like to watch the regional news channel <a href=\"https:\/\/focus-wtv.be\/wtv\">WTV<\/a> from time to time. <\/p>\n\n\n\n<p>Streaming WTV to an Android TV device, what are the available options?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Android TV app: <br \/>the <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=be.focuswtv.navigationdrawertest\">Focus\/WTV app<\/a> is not available for Android TV.<\/li>\n\n\n\n<li>Cast from phone: <br \/>casting a stream from the Android app on your phone is not supported.<\/li>\n\n\n\n<li>Cast from <a href=\"https:\/\/focus-wtv.be\/tv-zone\">website<\/a>:<br \/>casting from the website <em>is<\/em> supported, but the stream hangs after a few seconds and refuses to resume.<\/li>\n<\/ul>\n\n\n\n<p>Ideally, my parents can just use an app on the TV, it makes things less complicated.<\/p>\n\n\n\n<p>So, what is the solution? Create a new app! \ud83d\ude09<\/p>\n\n\n\n<p>A few years ago, I gave it a first try, but somehow did not succeed. Maybe I was trying to support login and on-demand content. Yesterday, I lowered the bar and thought just streaming live content would already be sufficient (it&#8217;s what my parents do now).<\/p>\n\n\n\n<p>To my surprise, I quite quickly had a working proof of concept. I was still using the project I created a few years ago using an old flutter version. So I upgraded the flutter version and it no longer worked on my <a href=\"https:\/\/en.wikipedia.org\/wiki\/Nvidia_Shield_TV\">Nvidia Shield TV<\/a>, but it still worked on the emulator. It does not render video anymore, only audio. I also tried out the latest flutter 3.29.2, and even though I do get image again, it&#8217;s all red. <br \/>Long story short: don&#8217;t use <a href=\"https:\/\/docs.flutter.dev\/perf\/impeller\">impeller<\/a> yet for hardware-acceleration sensitive stuff like video streaming.<\/p>\n\n\n\n<p>I would show a screenshot, but there&#8217;s nothing to see but the live stream. \ud83d\ude42 <\/p>\n\n\n\n<p>Stay tuned!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>10 years ago, I cancelled my cable TV subscription and switched to internet streaming-only using the first Android TV device, Google&#8217;s Nexus Player. It was a great cost saver. I never watched live TV to begin with, as I always wanted to skip forward during ads. My new home was Netflix and having no ads &hellip; <a href=\"https:\/\/mattiesworld.gotdns.org\/weblog\/2025\/03\/30\/cord-cutting-the-final-thread\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Cord cutting &#8211; The final thread<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1097,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35,47,5],"tags":[],"class_list":["post-1096","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-focus-wtv","category-programming"],"_links":{"self":[{"href":"https:\/\/mattiesworld.gotdns.org\/weblog\/wp-json\/wp\/v2\/posts\/1096","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mattiesworld.gotdns.org\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mattiesworld.gotdns.org\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mattiesworld.gotdns.org\/weblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mattiesworld.gotdns.org\/weblog\/wp-json\/wp\/v2\/comments?post=1096"}],"version-history":[{"count":2,"href":"https:\/\/mattiesworld.gotdns.org\/weblog\/wp-json\/wp\/v2\/posts\/1096\/revisions"}],"predecessor-version":[{"id":1099,"href":"https:\/\/mattiesworld.gotdns.org\/weblog\/wp-json\/wp\/v2\/posts\/1096\/revisions\/1099"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mattiesworld.gotdns.org\/weblog\/wp-json\/wp\/v2\/media\/1097"}],"wp:attachment":[{"href":"https:\/\/mattiesworld.gotdns.org\/weblog\/wp-json\/wp\/v2\/media?parent=1096"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mattiesworld.gotdns.org\/weblog\/wp-json\/wp\/v2\/categories?post=1096"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mattiesworld.gotdns.org\/weblog\/wp-json\/wp\/v2\/tags?post=1096"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}