{"id":993,"date":"2014-05-25T13:19:34","date_gmt":"2014-05-25T13:19:34","guid":{"rendered":"http:\/\/notonbluray.com\/blog\/?p=993"},"modified":"2022-09-02T08:50:03","modified_gmt":"2022-09-02T08:50:03","slug":"better-closed-caption-decoding","status":"publish","type":"post","link":"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/","title":{"rendered":"Better Closed Caption Decoding in Python"},"content":{"rendered":"<div itemscope itemtype=\"http:\/\/schema.org\/BlogPosting\"><p>I&#8217;ve just pushed out an improved version of <a title=\"Closed Captions In SCC Format Python\" href=\"http:\/\/notonbluray.com\/blog\/scc-closed-captions-python\/\">my Closed Caption decoder<\/a> to <a href=\"https:\/\/github.com\/CordySmith\/cc_decoder\" target=\"_blank\" rel=\"noopener\">GitHub<\/a>. In addition to decoding closed captions to SRT or SCC formats, it\u00a0includes the following improvements:<\/p>\n<ul>\n<li>XDS packet decoding<\/li>\n<li>Improved handling of noisy and\u00a0non-standard video<\/li>\n<li>More complete handling of esoteric characters<\/li>\n<li>Much easy to use in embedded projects due to separation into core library<\/li>\n<li>A few performance improvements<\/li>\n<li><a href=\"https:\/\/github.com\/CordySmith\/cc_decoder\/blob\/master\/bin\/cc_decoder.exe\" target=\"_blank\" rel=\"noopener\">Pre-built command line version for windows<\/a> (PyInstaller generated)<\/li>\n<\/ul>\n<p>The software is entirely <a href=\"http:\/\/unlicense.org\/\" target=\"_blank\" rel=\"noopener\">public domain <\/a>&#8211; so feel free to use it in your own projects.<\/p>\n<p>You&#8217;ll still need FFMpeg installed &#8211; but effortless static builds for windows can be <a href=\"http:\/\/ffmpeg.zeranoe.com\/builds\/\">found here<\/a>. I&#8217;ll try and get an OSX binary built in the next few days.<\/p>\n<p>I&#8217;d still like to move the project further forwards still &#8211; but I really need &#8216;real-world&#8217; closed-caption samples to make it happen. If you are interested in decoding closed captions, and would like to see this tool improved, please reach out to me: we may be able to help each other.<\/p>\n<p>&nbsp;<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve just pushed out an improved version of my Closed Caption decoder to GitHub. In addition to decoding closed captions to SRT or SCC formats, it\u00a0includes the following improvements: XDS packet decoding Improved handling of noisy and\u00a0non-standard video More complete handling of esoteric characters Much easy to use in embedded projects due to separation into [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":676,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[37,84,71],"class_list":["post-993","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-closed-captions","tag-python","tag-xds"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Better Closed Caption Decoding in Python - Not on Blu-ray<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Better Closed Caption Decoding in Python - Not on Blu-ray\" \/>\n<meta property=\"og:description\" content=\"I&#8217;ve just pushed out an improved version of my Closed Caption decoder to GitHub. In addition to decoding closed captions to SRT or SCC formats, it\u00a0includes the following improvements: XDS packet decoding Improved handling of noisy and\u00a0non-standard video More complete handling of esoteric characters Much easy to use in embedded projects due to separation into [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/\" \/>\n<meta property=\"og:site_name\" content=\"Not on Blu-ray\" \/>\n<meta property=\"article:published_time\" content=\"2014-05-25T13:19:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-02T08:50:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/notonbluray.com\/blog\/wp-content\/uploads\/2013\/08\/SRT-format-subtitles.png\" \/>\n\t<meta property=\"og:image:width\" content=\"322\" \/>\n\t<meta property=\"og:image:height\" content=\"538\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Link\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Link\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/better-closed-caption-decoding\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/better-closed-caption-decoding\\\/\"},\"author\":{\"name\":\"Link\",\"@id\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/#\\\/schema\\\/person\\\/bd31ad218b684e12e90bbc2db3f6e650\"},\"headline\":\"Better Closed Caption Decoding in Python\",\"datePublished\":\"2014-05-25T13:19:34+00:00\",\"dateModified\":\"2022-09-02T08:50:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/better-closed-caption-decoding\\\/\"},\"wordCount\":179,\"image\":{\"@id\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/better-closed-caption-decoding\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/08\\\/SRT-format-subtitles.png\",\"keywords\":[\"Closed Captions\",\"Python\",\"XDS\"],\"articleSection\":[\"Python\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/better-closed-caption-decoding\\\/\",\"url\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/better-closed-caption-decoding\\\/\",\"name\":\"Better Closed Caption Decoding in Python - Not on Blu-ray\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/better-closed-caption-decoding\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/better-closed-caption-decoding\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/08\\\/SRT-format-subtitles.png\",\"datePublished\":\"2014-05-25T13:19:34+00:00\",\"dateModified\":\"2022-09-02T08:50:03+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/#\\\/schema\\\/person\\\/bd31ad218b684e12e90bbc2db3f6e650\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/better-closed-caption-decoding\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/notonbluray.com\\\/blog\\\/better-closed-caption-decoding\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/better-closed-caption-decoding\\\/#primaryimage\",\"url\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/08\\\/SRT-format-subtitles.png\",\"contentUrl\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/08\\\/SRT-format-subtitles.png\",\"width\":322,\"height\":538,\"caption\":\"SRT format subtitles\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/better-closed-caption-decoding\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Better Closed Caption Decoding in Python\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/\",\"name\":\"Not on Blu-ray\",\"description\":\"Reviews of streaming media\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/notonbluray.com\\\/blog\\\/#\\\/schema\\\/person\\\/bd31ad218b684e12e90bbc2db3f6e650\",\"name\":\"Link\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Better Closed Caption Decoding in Python - Not on Blu-ray","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/","og_locale":"en_US","og_type":"article","og_title":"Better Closed Caption Decoding in Python - Not on Blu-ray","og_description":"I&#8217;ve just pushed out an improved version of my Closed Caption decoder to GitHub. In addition to decoding closed captions to SRT or SCC formats, it\u00a0includes the following improvements: XDS packet decoding Improved handling of noisy and\u00a0non-standard video More complete handling of esoteric characters Much easy to use in embedded projects due to separation into [&hellip;]","og_url":"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/","og_site_name":"Not on Blu-ray","article_published_time":"2014-05-25T13:19:34+00:00","article_modified_time":"2022-09-02T08:50:03+00:00","og_image":[{"width":322,"height":538,"url":"https:\/\/notonbluray.com\/blog\/wp-content\/uploads\/2013\/08\/SRT-format-subtitles.png","type":"image\/png"}],"author":"Link","twitter_misc":{"Written by":"Link","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/#article","isPartOf":{"@id":"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/"},"author":{"name":"Link","@id":"https:\/\/notonbluray.com\/blog\/#\/schema\/person\/bd31ad218b684e12e90bbc2db3f6e650"},"headline":"Better Closed Caption Decoding in Python","datePublished":"2014-05-25T13:19:34+00:00","dateModified":"2022-09-02T08:50:03+00:00","mainEntityOfPage":{"@id":"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/"},"wordCount":179,"image":{"@id":"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/#primaryimage"},"thumbnailUrl":"https:\/\/notonbluray.com\/blog\/wp-content\/uploads\/2013\/08\/SRT-format-subtitles.png","keywords":["Closed Captions","Python","XDS"],"articleSection":["Python"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/","url":"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/","name":"Better Closed Caption Decoding in Python - Not on Blu-ray","isPartOf":{"@id":"https:\/\/notonbluray.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/#primaryimage"},"image":{"@id":"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/#primaryimage"},"thumbnailUrl":"https:\/\/notonbluray.com\/blog\/wp-content\/uploads\/2013\/08\/SRT-format-subtitles.png","datePublished":"2014-05-25T13:19:34+00:00","dateModified":"2022-09-02T08:50:03+00:00","author":{"@id":"https:\/\/notonbluray.com\/blog\/#\/schema\/person\/bd31ad218b684e12e90bbc2db3f6e650"},"breadcrumb":{"@id":"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/#primaryimage","url":"https:\/\/notonbluray.com\/blog\/wp-content\/uploads\/2013\/08\/SRT-format-subtitles.png","contentUrl":"https:\/\/notonbluray.com\/blog\/wp-content\/uploads\/2013\/08\/SRT-format-subtitles.png","width":322,"height":538,"caption":"SRT format subtitles"},{"@type":"BreadcrumbList","@id":"https:\/\/notonbluray.com\/blog\/better-closed-caption-decoding\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/notonbluray.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Better Closed Caption Decoding in Python"}]},{"@type":"WebSite","@id":"https:\/\/notonbluray.com\/blog\/#website","url":"https:\/\/notonbluray.com\/blog\/","name":"Not on Blu-ray","description":"Reviews of streaming media","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/notonbluray.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/notonbluray.com\/blog\/#\/schema\/person\/bd31ad218b684e12e90bbc2db3f6e650","name":"Link"}]}},"_links":{"self":[{"href":"https:\/\/notonbluray.com\/blog\/wp-json\/wp\/v2\/posts\/993","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/notonbluray.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/notonbluray.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/notonbluray.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/notonbluray.com\/blog\/wp-json\/wp\/v2\/comments?post=993"}],"version-history":[{"count":4,"href":"https:\/\/notonbluray.com\/blog\/wp-json\/wp\/v2\/posts\/993\/revisions"}],"predecessor-version":[{"id":283609,"href":"https:\/\/notonbluray.com\/blog\/wp-json\/wp\/v2\/posts\/993\/revisions\/283609"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/notonbluray.com\/blog\/wp-json\/wp\/v2\/media\/676"}],"wp:attachment":[{"href":"https:\/\/notonbluray.com\/blog\/wp-json\/wp\/v2\/media?parent=993"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/notonbluray.com\/blog\/wp-json\/wp\/v2\/categories?post=993"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/notonbluray.com\/blog\/wp-json\/wp\/v2\/tags?post=993"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}