{"id":2022,"date":"2009-12-20T22:35:41","date_gmt":"2009-12-21T06:35:41","guid":{"rendered":"http:\/\/multimedia.cx\/eggs\/?p=2022"},"modified":"2009-12-20T22:35:42","modified_gmt":"2009-12-21T06:35:42","slug":"ps3-notes","status":"publish","type":"post","link":"https:\/\/multimedia.cx\/eggs\/ps3-notes\/","title":{"rendered":"PS3 Notes"},"content":{"rendered":"<p>I have been working (and occasionally playing) with my PlayStation 3 recently. I upgraded the 80 GB internal hard drive to a 1\/2 TB one. Since I have the old 80 GB HD laying around, of course I have to plug it in and see if there&#8217;s anything familiar about the data. It&#8217;s a short exploration: As you might suspect, the HD is completely impenetrable. No partition table reported through Linux fdisk. No human-readable strings can be seen when running &#8216;strings&#8217; over the raw HD sectors. Based on forum postings I have read where one PS3 HD can&#8217;t successfully be transplanted to another PS3 (and have all the data accessible; the HD could still be reformatted fresh to work in another PS3), I&#8217;m guessing that every sector is encrypted with a key derived at least partially from a unique ID embedded in each console. That&#8217;s all the effort I plan to put into this exercise. Next stop for this HD is my Eee PC 701 which is currently struggling to run Ubuntu Linux on a mere 4 GB SSD.<\/p>\n<p>I downloaded a free movie trailer through the PlayStation store. When I inspected the information through the PS3&#8217;s XMB menu, the filetype was reported as &#8220;MNV&#8221;. A little Googling ties this format into the paid content format of the PS3 store. I&#8217;m not especially confident about this format since the trailer that I downloaded doesn&#8217;t even play correctly on the PS3. The video stutters back and forth, almost as though it&#8217;s swapping pairs of frames during playback: 1, 0, 3, 2, 5, 4, 7, 6, etc. The XMB allows me to &#8220;backup&#8221; this media. This option needs to be distinguished from &#8220;copy&#8221;, which is sometimes an option. &#8220;Copy&#8221; implies an unlocked version that can be copied onto removable media and used anywhere. &#8220;Backup&#8221; implies that it can be copied onto removable media but is still keyed to &#8212; and can only be used on &#8212; this console. I backed it up and was able to inspect the data on the USB drive. It turns out that the MNV file is still a stock MP4 but with custom DRM. When <a href=\"http:\/\/ffmpeg.org\/\">FFmpeg<\/a> is aimed at this file, this is the result:<\/p>\n<pre>\r\n[h264 @ 0x1004000]AVC: nal size -2055117847\r\n[h264 @ 0x1004000]no frame!\r\n[...repeated many times...]\r\n[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1002600]max_analyze_duration reached\r\n\r\nSeems stream 0 codec frame rate differs from container frame rate:\r\n 48000.00 (48000\/1) -> 23.98 (24000\/1001)\r\nInput #0, mov,mp4,m4a,3gp,3g2,mj2, from\r\n '\/Volumes\/KINGSTON\/PS3\/EXPORT\/VIDEOBKP\/20091220-220733-00000001\/20091220-220733-00000001.001':\r\n  Metadata:\r\n    major_brand     : MGSV\r\n    minor_version   : 20842393\r\n    compatible_brands: MGSVmp42isom\r\n  Duration: 00:01:46.64, start: 0.000000, bitrate: 8651 kb\/s\r\n    Stream #0.0(und): Video: h264, 2205 kb\/s, 23.98 fps, 23.98 tbr, 24k tbn, 48k tbc\r\n    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 264 kb\/s\r\n    Stream #0.2(eng): Audio: aac, 48000 Hz, 5.1, s16, 395 kb\/s\r\n    Stream #0.3(und): Data: mp4s \/ 0x7334706D, 759552 kb\/s\r\nVideo pixel format is unknown, stream cannot be decoded\r\n<\/pre>\n<p>I remember some patches flying around the FFmpeg-devel list recently which would allow the program to print warnings and bail out if it encountered a known DRM scheme. When I shove an Apple-encrypted file through FFmpeg, it doesn&#8217;t tell me anything special so I don&#8217;t think the patch is in yet. However, FFmpeg should probably detect this type of DRM file as well.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Just some things I have noticed about my PS3<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,29],"tags":[],"class_list":["post-2022","post","type-post","status-publish","format-standard","hentry","category-drm","category-game-hacking"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/2022","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=2022"}],"version-history":[{"count":4,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/2022\/revisions"}],"predecessor-version":[{"id":2026,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/2022\/revisions\/2026"}],"wp:attachment":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/media?parent=2022"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/categories?post=2022"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/tags?post=2022"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}