{"id":33,"date":"2007-03-03T23:49:45","date_gmt":"2007-03-04T02:49:45","guid":{"rendered":"http:\/\/labs.morpheuz.eng.br\/blog\/03\/03\/2007\/gmyth-remote-transcoding\/"},"modified":"2007-03-03T23:49:45","modified_gmt":"2007-03-04T02:49:45","slug":"gmyth-remote-transcoding","status":"publish","type":"post","link":"https:\/\/blog.morpheuz.cc\/?p=33","title":{"rendered":"GMyth: Remote transcoding"},"content":{"rendered":"<p>Last week I promised that <a href=\"http:\/\/gmyth.sf.net\" title=\"GMyth web-site\" target=\"_blank\" rel=\"noopener noreferrer\">GMyth<\/a> would handle all that stuff from <a href=\"http:\/\/www.mythtv.org\" target=\"_blank\" title=\"MythTV web-site\" rel=\"noopener noreferrer\">MythTV&#8217;s<\/a> remote transcoding and here it is.<\/p>\n<p>The last version from svn is already able to request (start\/stop) the transcode of videos that were recorded through MythTV. It&#8217;s also possible to create\/delete and list myth&#8217;s transcoding profiles. I also modified some structure&#8217;s members from GString* type to gchar* type following <a href=\"http:\/\/blog.gustavobarbieri.com.br\/\" title=\"Blog do Barbieri\" target=\"_blank\" rel=\"noopener noreferrer\">Gustavo Barbieri&#8217;s<\/a> suggestion.<\/p>\n<p>In order to be able to use this profiles features you need to apply <a href=\"http:\/\/cvs.mythtv.org\/trac\/ticket\/3155\" title=\"Ticket 3155\" target=\"_blank\" rel=\"noopener noreferrer\">another patch<\/a> that I&#8217;ve submitted for MythTV&#8217;s developers. Using this last patch with the one that I mentioned on a <a href=\"http:\/\/labs.morpheuz.eng.br\/blog\/26\/02\/2007\/mythtvs-jobqueue-patch\/\" title=\"JobQueue Patch\" target=\"_blank\" rel=\"noopener noreferrer\">post below<\/a>, you can use all this GMyth&#8217;s transcoding features. Here I show the basic steps for setting up and using a transcode object and listing\/creating a profile:<\/p>\n<ul>\n<li>GSList* profiles = gmyth_http_retrieve_rec_profiles(backend_info, &#8220;Transcoders&#8221;);<\/li>\n<li>GMythRecProfile* prof = profiles-&gt;data;<\/li>\n<li>int test = gmyth_http_del_rec_profile(backend_info, prof-&gt;id);<\/li>\n<li>GMythRecProfile* profile = gmyth_recprofile_new();<\/li>\n<li>gmyth_recprofile_set_name(profile,&#8221;Teste&#8221;);<\/li>\n<li>gmyth_recprofile_set_group(profile,&#8221;Transcoders&#8221;);<\/li>\n<li>gmyth_recprofile_set_vcodec(profile,&#8221;MPEG-4&#8243;);<\/li>\n<li>gmyth_recprofile_set_acodec(profile,&#8221;MP3&#8243;);<\/li>\n<li>test = gmyth_http_create_rec_profile(backend_info, profile);<\/li>\n<\/ul>\n<ul>\n<li>GMythTranscode* transcode = gmyth_transcode_new();<\/li>\n<li>transcode-&gt;backend_info = backend_info;<\/li>\n<li>transcode-&gt;cutlist = TRUE;<\/li>\n<li>gmyth_transcode_set_profile (transcode, &#8220;N800&#8221;);<\/li>\n<li>gmyth_transcode_set_filename (transcode, &#8220;1000_20061207123000.nuv&#8221;);<\/li>\n<li>int test = gmyth_jobqueue_add_job(transcode, &#8220;JOB_TRANSCODE&#8221;);<\/li>\n<li>test = gmyth_jobqueue_change_cmd(transcode, &#8220;STOP&#8221;, &#8220;JOB_TRANSCODE&#8221;);<\/li>\n<\/ul>\n<p>We are also changing a lot of SQL queries inside GMyth for HTTP+XML requests. I think we are almost there \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last week I promised that GMyth would handle all that stuff from MythTV&#8217;s remote transcoding and here it is. The last version from svn is already able to request (start\/stop) the transcode of videos that were recorded through MythTV. It&#8217;s also possible to create\/delete and list myth&#8217;s transcoding profiles. I also modified some structure&#8217;s members [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-33","post","type-post","status-publish","format-standard","hentry","category-maemo"],"_links":{"self":[{"href":"https:\/\/blog.morpheuz.cc\/index.php?rest_route=\/wp\/v2\/posts\/33","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.morpheuz.cc\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.morpheuz.cc\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.morpheuz.cc\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.morpheuz.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=33"}],"version-history":[{"count":0,"href":"https:\/\/blog.morpheuz.cc\/index.php?rest_route=\/wp\/v2\/posts\/33\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.morpheuz.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=33"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.morpheuz.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=33"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.morpheuz.cc\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=33"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}