Why would you want your videos in the .3gp container to begin with? Its a very irrelevant format nowadays, there is practically no device that supports the 3gp container but not MP4 at the same time. Its nothing but a close derivative of MP4, they are very similar container formats holding the same codec. If you want to support a lot of devices using h264 in the mp4 container opens your website up to the majority of mobile an desktop devices, in addition vp8/webm offers compatibility to open source software that can't afford h264 license or doesn't want to use h264. With these two formats you are covering every relevant market.
http://caniuse.com/#feat=mpeg4
http://caniuse.com/#feat=webm
3gp is a depricated format for legacy phones, long before the Android and iOS era when YouTube was new and started to add a bit of mobile support and its nearly identical with MP4, some manufactures even name their 3gp files with the .mp4 extension (wiki)
Also note that having your files have the same meta information as those from YouTube is not an indicator if they are compatible or not, YouTube uses a different encoder than you and the encoder will write different information than x264 in ffmpeg. If your file meets the specs of a certain format than its compatible, easy as that.
If you want to go sure you don't use any fancy format features just use a low profile (e.g. baseline in the case of h264) to ensure compatibility with virtually any device, the lower the profile the less features are allowed.
If you REALLY need to use 3gp you can specify the container with the option -f 3gp
. Using the BaseLine 1 profile is absolutely suffice.
Using a ffmpeg commandline like the following will get you what need:
ffmpeg -i input.mp4 -vf scale=320:240 -vcodec mpeg4 -acodec aac -strict -2 -f
3gp output.3gp
Note the usage of mpeg4
instead of libx264. The mpeg4
encoder is the Mpeg4 Part 2 codec also known as h263. Again, extremely few devices nowadays do not support h264 and I can only advice to support h263 in the 3gp container when you are in dire need to do so or have an extremely large user base that ranks in the tens of millions of users.
Having 3gp6 instead of 3gp4 is irrelevant, you are targeting old devices so using the newest version of the standard doesn't make much sense. FFmpeg will use the 3gp6 container only when using the also newer codec h264 which release 6 is also meant for.
Here and excerpt from the 3gpp v6 standard:
Specific MBMS Rel-6 application codecs are introduced, like for example audio codecs Extended AMR-WB (AMR-WB+), Enhanced aacPlus and video codec H.264/AVC.
So unless you use h264, there is no need for using Release 6 and you can stick with Release 4 without running into any issues.
The opposite is actually the case, the older the version the more old devices you will support.