<div dir="ltr"><div>Hi,</div><div><br></div>I respond late to this file, but i respond : with this kind of simple C source code :<div><div><br></div><div><a href="https://ffmpeg.org/doxygen/0.7/metadata-example_8c-source.html">https://ffmpeg.org/doxygen/0.7/metadata-example_8c-source.html</a><br></div><div><br></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">... i can obtain these info from a MP4 file :</span><br></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-family:monospace"><span style="color:rgb(0,0,0);background-color:rgb(255,255,255)">[gilles@localhost GIT]$ gcc ffmetadata.c -lavformat -lavutil
</span><br>[gilles@localhost GIT]$  <br>[gilles@localhost GIT]$ ./a.out VID_20161224_201626.mp4  <br>major_brand=mp42
<br>minor_version=0
<br>compatible_brands=isommp42
<br>creation_time=2016-12-25T04:16:26.000000Z
<br>location=+37.7536-122.4330/
<br>location-eng=+37.7536-122.4330/
<br>com.android.version=7.0
<br>com.android.capture.fps=30.000000<br>
<br></span>Exiftool report more information of course :</span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-family:monospace"><span style="color:rgb(0,0,0);background-color:rgb(255,255,255)">[gilles@localhost GIT]$ exiftool VID_20161224_201626.mp4         </span><br>ExifTool Version Number         : 10.45
<br>File Name                       : VID_20161224_201626.mp4
<br>Directory                       : .
<br>File Size                       : 12 MB
<br>File Modification Date/Time     : 2017:01:10 00:05:56+01:00
<br>File Access Date/Time           : 2018:02:26 09:56:28+01:00
<br>File Inode Change Date/Time     : 2018:02:26 09:56:24+01:00
<br>File Permissions                : rw-rw-r--
<br>File Type                       : MP4
<br>File Type Extension             : mp4
<br>MIME Type                       : video/mp4
<br>Major Brand                     : MP4 v2 [ISO 14496-14]
<br>Minor Version                   : 0.0.0
<br>Compatible Brands               : isom, mp42
<br>Movie Header Version            : 0
<br>Create Date                     : 2016:12:25 04:16:26
<br>Modify Date                     : 2016:12:25 04:16:26
<br>Time Scale                      : 1000
<br>Duration                        : 5.80 s
<br>Preferred Rate                  : 1
<br>Preferred Volume                : 100.00%
<br>Preview Time                    : 0 s
<br>Preview Duration                : 0 s
<br>Poster Time                     : 0 s
<br>Selection Time                  : 0 s
<br>Selection Duration              : 0 s
<br>Current Time                    : 0 s
<br>Next Track ID                   : 3
<br>GPS Coordinates                 : 37 deg 45' 12.96" N, 122 deg 25' 58.80" W
<br>Com Android Version             : 7.0
<br>Com Android Capture Fps         : 30
<br>Track Header Version            : 0
<br>Track Create Date               : 2016:12:25 04:16:26
<br>Track Modify Date               : 2016:12:25 04:16:26
<br>Track ID                        : 1
<br>Track Duration                  : 5.67 s
<br>Track Layer                     : 0
<br>Track Volume                    : 0.00%
<br>Image Width                     : 1920
<br>Image Height                    : 1080
<br>Graphics Mode                   : srcCopy
<br>Op Color                        : 0 0 0
<br>Compressor ID                   : avc1
<br>Source Image Width              : 1920
<br>Source Image Height             : 1080
<br>X Resolution                    : 72
<br>Y Resolution                    : 72
<br>Bit Depth                       : 24
<br>Pixel Aspect Ratio              : 65536:65536
<br>Color Representation            : nclx 1 1 1
<br>Video Frame Rate                : 29.824
<br>Matrix Structure                : 1 0 0 0 1 0 0 0 1
<br>Media Header Version            : 0
<br>Media Create Date               : 2016:12:25 04:16:26
<br>Media Modify Date               : 2016:12:25 04:16:26
<br>Media Time Scale                : 48000
<br>Media Duration                  : 5.80 s
<br>Handler Type                    : Audio Track
<br>Handler Description             : SoundHandle
<br>Balance                         : 0
<br>Audio Format                    : mp4a
<br>Audio Channels                  : 1
<br>Audio Bits Per Sample           : 16
<br>Audio Sample Rate               : 48000
<br>Movie Data Size                 : 12008560
<br>Movie Data Offset               : 405243
<br>Avg Bitrate                     : 16.6 Mbps
<br>GPS Latitude                    : 37 deg 45' 12.96" N
<br>GPS Longitude                   : 122 deg 25' 58.80" W
<br>Image Size                      : 1920x1080
<br>Megapixels                      : 2.1
<br>Rotation                        : 180
<br>GPS Position                    : 37 deg 45' 12.96" N, 122 deg 25' 58.80" W<br>
<br></span>... but at least the minimum are there, as date, GPS info, frame per seconds.</span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Certainly more details can be captured with more code as libav API is huge.</span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">So my conclusion is : yes, we can use libav (ffmpeg) to handle some important metadata from video files.</span></div><div>I cannot guaranty that all video format are supported weel to extract metadata homogeneous.</div><div>I must also check how libav work to extract metadata without any decoding video file (the expected way to process), to prevent huge time latency while scanning.</div><div><br></div><div>For this purpose, i propose to introduce this kind of code in 6.0.0 branch, not in 5.x, as next and last 5.9.0 release will be published in few days.</div><div><br></div><div>Gilles Caulier</div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2018-01-11 16:32 GMT+01:00 Andrey Goreev <span dir="ltr"><<a href="mailto:aegoreev@gmail.com" target="_blank">aegoreev@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Hello,<br><br></div>Looks like as long as libavformat/avformat.h presented in the appimage digiKam can read/write video files' metadata via calling the library directly from c++. <br></div><div><div><div><br>Here is an example: <a href="https://stackoverflow.com/questions/45050177/adding-metadata-informations-with-ffmpeg" target="_blank">https://stackoverflow.com/<wbr>questions/45050177/adding-<wbr>metadata-informations-with-<wbr>ffmpeg</a><br><br>Also looks like ffmpeg is capable of writing whatever tag you want in the mdta atom:<br><a href="http://www.ffmpeg-archive.org/Write-QuickTime-tags-td4680508.html" target="_blank">http://www.ffmpeg-archive.org/<wbr>Write-QuickTime-tags-<wbr>td4680508.html</a><br><br clear="all"><div><div class="m_-5594365262976302462gmail_signature"><div>Can this help closing the gap left by exiv2 ?<br></div><div dir="ltr"><div><br>Best regards,<br></div><div>Andrey <br></div></div></div></div>
</div></div></div></div>
</blockquote></div><br></div>