{"id":589,"date":"2008-08-21T20:44:21","date_gmt":"2008-08-22T03:44:21","guid":{"rendered":"http:\/\/multimedia.cx\/eggs\/baldurs-task\/"},"modified":"2008-08-21T20:44:21","modified_gmt":"2008-08-22T03:44:21","slug":"baldurs-task","status":"publish","type":"post","link":"https:\/\/multimedia.cx\/eggs\/baldurs-task\/","title":{"rendered":"Baldur&#8217;s Task"},"content":{"rendered":"<p>I have a lot of experience <em>consuming<\/em> multimedia on Linux using open source software. But I have little experience generating or transcoding multimedia within the same parameters. So, much like I experienced with the <a href=\"http:\/\/multimedia.cx\/eggs\/introducing-moobex\/\">MOOBEX exercise<\/a>, I decided to move out of my comfort zone and work on transcoding for once.<\/p>\n<p>Fortunately, I have a concrete task&#8211; a colleague who is interested in game preservation wanted to know about transcoding the Interplay MVE files from games such as <a href=\"http:\/\/www.mobygames.com\/game\/windows\/baldurs-gate\">Baldur&#8217;s Gate<\/a> into a format a little more modern. So let&#8217;s see what we can do about using <a href=\"http:\/\/ffmpeg.org\/\">FFmpeg<\/a> to transcode to MP4\/H.264\/AAC.<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.mobygames.com\/game\/windows\/baldurs-gate\"><img decoding=\"async\" src=\"\/eggs\/images\/baldurs-gate-logo.jpg\" alt=\"Baldur's Gate logo\" border=\"0\" \/><\/a><br \/>\n<\/center><\/p>\n<p>I suspect the steps will look like this:<\/p>\n<ul>\n<li>Download and install libfaac, as Kostya&#8217;s AAC encoder is not in the mainline tree yet<\/li>\n<li>Download and install a recent snapshot of <a href=\"http:\/\/www.videolan.org\/developers\/x264.html\">x264<\/a><\/li>\n<li>Update to the latest SVN snapshot of FFmpeg and compile it with libfaac and x264 support<\/li>\n<li>Transcode away, preferably with some manner of batch transcode process<\/li>\n<\/ul>\n<p>Let&#8217;s see if it&#8217;s that easy.<\/p>\n<p>This is the first time I have ever worked with x264. I decided to install from source. It has trouble finding and using the <a href=\"http:\/\/www.tortall.net\/projects\/yasm\/\">yasm assembler<\/a> installed on the system. No matter, I&#8217;ll be patient for the test encodings. I finally got everything compiled together and figured out what options FFmpeg wanted (&#8216;-acodec libfaac -vcodec libx264&#8217;) and I let it rip&#8230;<\/p>\n<p><em>&#8230;and the whole thing blows up.<\/em> Segfault down in the x264 library.<\/p>\n<p>Between this and the MOOBEX exercise and <a href=\"http:\/\/blogs.adobe.com\/penguin.swf\/2008\/08\/curl_tradeoffs.html\">the library problems<\/a> on my little work project, I can&#8217;t help but take a dim view of multimedia support on Linux this week. Which is especially depressing since I sort of consider multimedia on Linux to be my beat.<\/p>\n<p>Dog food sucks. But on the plus side, <a href=\"http:\/\/rob.opendot.cl\/\">Robert<\/a> finished committing AAC-LC decoding support to FFmpeg.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have a lot of experience consuming multimedia on Linux using open source software. But I have little experience generating or transcoding multimedia within the same parameters. So, much like I experienced with the MOOBEX exercise, I decided to move out of my comfort zone and work on transcoding for once. Fortunately, I have a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-589","post","type-post","status-publish","format-standard","hentry","category-open-source-multimedia"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/589","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/comments?post=589"}],"version-history":[{"count":0,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/589\/revisions"}],"wp:attachment":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/media?parent=589"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/categories?post=589"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/tags?post=589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}