I am trying to retrieve GPS information from media files using ffprobe
, for example:
$ ffprobe -v quiet -show_format sample.mp4
[FORMAT]
filename=sample.mp4
nb_streams=2
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=0.000000
duration=4.293000
size=11888152
bit_rate=22153556
probe_score=100
TAG:major_brand=mp42
TAG:minor_version=0
TAG:compatible_brands=isommp42
TAG:creation_time=2020-09-20T11:33:49.000000Z
TAG:location=+25.0731+121.3663/
TAG:location-eng=+25.0731+121.3663/
TAG:com.android.version=10
TAG:com.android.manufacturer=Google
TAG:com.android.model=Pixel
[/FORMAT]
We can see that there are 2 tags that look like ISO6709 representations, location
and location-eng
.
And here are my questions:
location
and location-eng
? It looks like they are always the same. Why do we need 2 different keys with same the value?location
and location-eng
really in ISO6709 representations? Is there any specification or standard I can refer to?I would really appreciate your help.
location-xyz
is the localized version of the location
, where xyz
is an ISO 639-3 language code.
The need for localized location metadata entries comes from the the way this metadata is stored based on 3GPP Technical Specification 26.244.
The TS defines a loci
sub-box type which can be present in the user-data box udta
. The sub-box contains a ISO 639-2 language code that applies to fields like the place name.
So to answer your questions:
location-eng
holds the English location data which includes the coordinates and, optionally, the place name in FFmpeg's case