Background: **SPOILER** This beginning background statement is entirely opinion, and slightly political. Please skip to the meat of the "tutorial" beyond the next two paragraphs below, the section header is "PS3 HELL" **SPOILER**
I hope this one day becomes a full tutorial, but as it stands there are too many disparate pieces scattered across the internet, and the shifting sands of militant/mandatory OS updates make most any effective approach... temporary. Please feel free to add what has worked for you (either now or in the past) so we can begin to build a picture of this hell, and clear ways out of it using FFMPEG.
I for one suspect foul play on the part of $ony (given their extremely poor track record in regards to "caring" or "respecting" their consumer base). They are a part of a larger corporate ethos (or more correctly, psychological sickness) that denies the concepts of personal freedoms/rights/privacy and of personal ownership. "They" as corporations own everything, and you ; the weak slave consumer, can only hope to rent access to 'their" content using "their" devices connected through "their" internet (all of which YOU pay for). As such, they do not respect your "right" to make or use copies of media of any kind, regardless of source, local jurisdiction or law. It is my fervent belief that they conspire against the consumer in this regard, especially when the digital content is of a high quality (just look at what they are doing with 4K....). The tactics they currently employ are targeted at the majority, sadly most users will never know ffmpeg or what it can do for them.
Full disclosure, this is less of a tutorial and more of a story.... Sorry. Also, read above for more information, but I strongly suspect that techniques written here will become ineffective after $ony uses this information to make their media player less compatible with "non-sanctioned" (read, not bought from $ony or one of their partners) media.
Like everyone else who owns a PS3 and uses it as a media player, many digital recordings in my library of varying container/codec do not play on the PS3 (displaying a variety of errors). One general technique that, until very recently, worked quite effectively (especially with MP4 files) was using ffmpeg to re-contain the original streams (stream copy, no transcoding). The general form of this command is as follows:
ffmpeg -i inputfile.ext -acodec copy -vcodec copy outputfile.ext (where ".ext" denote the input and output container formats/extensions, either copying from one container to an identical container (ex .mp4 to .mp4) or from one container to a different type (ex. .mp4 to .avi)
What container/codecs specifically are compatible with the PS3 is a mystery, and a moving target due to the aforementioned "mandatory" OS updates. However, generally speaking, the most "supported" container (the one that at least in theory has the highest playability with the largest variety of stream types) is mp4.... or should I say "was"... I am not positive, but it would seem that at least with many problem mp4 files in my library, on the latest OS version, that there is no way short of re-encoding the video and/or audio to get the ps3 to play them (most all are standard x264/aac mp4 at low/medium bitrates). I have discovered (or rather rediscovered) that if you have a "trouble" x264 stream that seems to require re-encoding, there is one last thing to try (that DOES still involve re-encoding in many cases, but only of the audio). It has been working well for me so far (1 day), so I thought I would share it here.
It seems that ACTUALLY, in terms of VIDEO stream support, the most "supported" container is MPEG-TS (NOT MPEG-PS). The only downside being, that ONLY AC3 (OR DTS hacked to appear as PCM) audio is accepted/played in that container. The batch script I use for conversion is below, hopefully it will serve you. It is customized to convert all .mp4 files in a given folder to .mpg files (the ps3 does not recognize .ts files, and for an unknown and not well understood reason .m2ts will not play with sound when created by ffmpeg.. tsmuxer and others do not have this issue) (@devs, I did see that mediainfo shows the container as BDAV when you output to .m2ts, and only displays as MPEG-TS when you output to .ts... I noticed the working file created by mkv2vob had the latter container type, also the AC3 tag is still mangled by ffmpeg but works anyway on the PS3 in .ts renamed to .mpg, but confoundingly not .m2ts)
- Code: Select all
for i in *.mp4 ; do
ffmpeg -i "$i" -bsf h264_mp4toannexb -acodec ac3 -vcodec copy "$i.ts"
mv "$i.ts" "$i.mpg"
Hopefully this will be of some use to you. If your source video has AC3 audio already, change "-acodec ac3" to "-acodec copy"... Never re-encode if you can avoid it!
Please add to this "tutorial" with your ffmpeg solutions to this issue, and we can all help each other out of PS3 Hell.