video metadata support: req. guidance

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

video metadata support: req. guidance

Bugzilla from dani@zubinet.org
Hello everyone!

I use digikam since a long time for all my pictures, and in general I'm quite
happy with the direction of development. Digikam is IMHO by far the best
opensource photo management software. Thanks a lot!

Lately I started taking more and more videoclips with my digicam. I manage the
clips together with the pictures, but here digikam shows still some
weaknesses. The biggest problem for me is that metadata like capture date or
associated digikam tags are not stored in the video files and consequently
can get lost. Especially the missing capture date can be very annoying
because the chronological order of the videos gets lost.

So I decided to look for a solution. When I download the clips from my camera,
I convert them to mpeg4/mp3/avi. Additionally I saved the capture date (the
file timestamp) in the comment tag of the avi file. Of course digikam is not
aware of this, but at least I will still be able to extract the information
when digikam supports video metatags in a future stage.

Are there any plans to support video file metatags or is even someone
implementing it already?
If not, I would be willing to contribute, if someone gives me a starting point
and some guidance.

Daniel
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: video metadata support: req. guidance

Gilles Caulier-4


2007/12/13, Daniel Zuberbühler <[hidden email]>:
Hello everyone!

hi.
 

I use digikam since a long time for all my pictures, and in general I'm quite
happy with the direction of development. Digikam is IMHO by far the best
opensource photo management software. Thanks a lot!

thanks
 

Lately I started taking more and more videoclips with my digicam.

same here (:=)))

 

I manage the
clips together with the pictures, but here digikam shows still some
weaknesses.

agree. We have concentrated work to photo management, and it will be time to study video stuff...
 

The biggest problem for me is that metadata like capture date or
associated digikam tags are not stored in the video files and consequently
can get lost. Especially the missing capture date can be very annoying
because the chronological order of the videos gets lost.

So I decided to look for a solution. When I download the clips from my camera,
I convert them to mpeg4/mp3/avi. Additionally I saved the capture date (the
file timestamp) in the comment tag of the avi file. Of course digikam is not
aware of this, but at least I will still be able to extract the information
when digikam supports video metatags in a future stage.

Are there any plans to support video file metatags or is even someone
implementing it already?

Well, not yet from the team. We working on other major features and for the KDE4 port.
 
But to handle video metadata, the KMetadata api from KDE3 can be enough. For KDE4 will provide more advanced support, but KDE4 is for the future...


If not, I would be willing to contribute, if someone gives me a starting point
and some guidance.

digKam already use KMetadata (and Exiv2 but only for photo). If i rememeber, KMatadata can parse few video formats to handle metadata entries. We just need to take a look into KMetadata code to learn how to use API. KMetadata use kfile-plugins to supports video format (and images format)

http://websvn.kde.org/branches/KDE/3.5/kdemultimedia/kfile-plugins/

In digikam, we have a class to get metadata: DMetadata. This one is used to load informations from files to database :

http://websvn.kde.org/branches/extragear/kde3/graphics/digikam/libs/dmetadata/

Alternativly, you can take a look into Kphotoalbum code to check how video informations are extracted...

http://websvn.kde.org/branches/extragear/kde3/graphics/kphotoalbum/

Best

Gilles Caulier
 

Daniel
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel


_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: video metadata support: req. guidance

Gilles Caulier-4
In reply to this post by Bugzilla from dani@zubinet.org
Few entries in Bugzilla about video support:

http://bugs.kde.org/show_bug.cgi?id=146764
http://bugs.kde.org/show_bug.cgi?id=134679

Gilles

2007/12/13, Daniel Zuberbühler <[hidden email]>:
Hello everyone!

I use digikam since a long time for all my pictures, and in general I'm quite
happy with the direction of development. Digikam is IMHO by far the best
opensource photo management software. Thanks a lot!

Lately I started taking more and more videoclips with my digicam. I manage the
clips together with the pictures, but here digikam shows still some
weaknesses. The biggest problem for me is that metadata like capture date or
associated digikam tags are not stored in the video files and consequently
can get lost. Especially the missing capture date can be very annoying
because the chronological order of the videos gets lost.

So I decided to look for a solution. When I download the clips from my camera,
I convert them to mpeg4/mp3/avi. Additionally I saved the capture date (the
file timestamp) in the comment tag of the avi file. Of course digikam is not
aware of this, but at least I will still be able to extract the information
when digikam supports video metatags in a future stage.

Are there any plans to support video file metatags or is even someone
implementing it already?
If not, I would be willing to contribute, if someone gives me a starting point
and some guidance.

Daniel
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel


_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: video metadata support: req. guidance

Loïc Brarda-2
In reply to this post by Gilles Caulier-4
2007/12/13, Gilles Caulier <[hidden email]>:

> digKam already use KMetadata (and Exiv2 but only for photo). If i rememeber,
> KMatadata can parse few video formats to handle metadata entries. We just
> need to take a look into KMetadata code to learn how to use API. KMetadata
> use kfile-plugins to supports video format (and images format)
>
> http://websvn.kde.org/branches/KDE/3.5/kdemultimedia/kfile-plugins/
>
>  In digikam, we have a class to get metadata: DMetadata. This one is used to
> load informations from files to database :
>
> http://websvn.kde.org/branches/extragear/kde3/graphics/digikam/libs/dmetadata/
>

I don't see any kfile-plugin there. For me, it first tries to load
metadata through Exiv2 then if it fails, it tries to use DCraw. Adding
kfile-plugin when DCraw fails could be a non invasive and extensible
way to do it (On supported files, Exiv2 will probably always be more
complete than kfile-plugins).

bool DMetadata::load(const QString& filePath)
{
    // In first, we trying to get metadata using Exiv2,
    // else we will use dcraw to extract minimal information.

    if (!KExiv2::load(filePath))
    {
        if (!loadUsingDcraw(filePath))
->     {
->          if (!loadUsingKfilePlugins(filePath))
                return false;
->       }
    }

    return true;
}

'->' lines beeing lines inserted in the load method. And of course,
loadUsingKfilePlugins function has to be implemented.

Cheers,
  Loïc
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: video metadata support: req. guidance

Gilles Caulier-4


2007/12/14, Loïc Brarda <[hidden email]>:
2007/12/13, Gilles Caulier <[hidden email]>:

> digKam already use KMetadata (and Exiv2 but only for photo). If i rememeber,
> KMatadata can parse few video formats to handle metadata entries. We just
> need to take a look into KMetadata code to learn how to use API. KMetadata
> use kfile-plugins to supports video format (and images format)
>
> http://websvn.kde.org/branches/KDE/3.5/kdemultimedia/kfile-plugins/
>
>  In digikam, we have a class to get metadata: DMetadata. This one is used to
> load informations from files to database :
>
> http://websvn.kde.org/branches/extragear/kde3/graphics/digikam/libs/dmetadata/
>

I don't see any kfile-plugin there. For me, it first tries to load
metadata through Exiv2 then if it fails, it tries to use DCraw. Adding
kfile-plugin when DCraw fails could be a non invasive and extensible
way to do it (On supported files, Exiv2 will probably always be more
complete than kfile-plugins).

bool DMetadata::load(const QString& filePath)
{
    // In first, we trying to get metadata using Exiv2,
    // else we will use dcraw to extract minimal information.

    if (!KExiv2::load(filePath))
    {
        if (!loadUsingDcraw(filePath))
->     {
->          if (!loadUsingKfilePlugins(filePath))
                return false;
->       }
    }

    return true;
}

'->' lines beeing lines inserted in the load method. And of course,
loadUsingKfilePlugins function has to be implemented.

There is no KMetadata in DMetadata class, but in image properties panel :

http://websvn.kde.org/branches/extragear/kde3/graphics/digikam/libs/imageproperties/imagepropertiestab.cpp?revision=670778&view=markup

... where KFileMetaInfo is called ...

Gilles


 

Cheers,
  Loïc
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel


_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: video metadata support: req. guidance

Loïc Brarda-2
In reply to this post by Loïc Brarda-2
2007/12/14, Loïc Brarda <[hidden email]>:

> '->' lines beeing lines inserted in the load method. And of course,
> loadUsingKfilePlugins function has to be implemented.
>
> Cheers,
>   Loïc
>

The KFileMetaInfo KDE Class
(http://developer.kde.org/documentation/library/3.4-api/kio/html/classKFileMetaInfo.html#_details)
would probably do most of the job.
Function DMetadata::loadUsingDcraw will show how to set the fields.

Cheers.
  Loïc
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: video metadata support: req. guidance

Gilles Caulier-4


2007/12/14, Loïc Brarda <[hidden email]>:
2007/12/14, Loïc Brarda <[hidden email]>:

> '->' lines beeing lines inserted in the load method. And of course,
> loadUsingKfilePlugins function has to be implemented.
>
> Cheers,
>   Loïc
>

The KFileMetaInfo KDE Class
(http://developer.kde.org/documentation/library/3.4-api/kio/html/classKFileMetaInfo.html#_details )
would probably do most of the job.
Function DMetadata::loadUsingDcraw will show how to set the fields.

Sure...

But the problem is how to decript the metadata content provided by KFileMetaInfo, especialy to get the field that we need...

Like you can see, KFileMetaInfo class API doc do not help in this way...

Gilles

 

Cheers.
  Loïc
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel


_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: video metadata support: req. guidance

Loïc Brarda-2
In reply to this post by Gilles Caulier-4
2007/12/14, Gilles Caulier <[hidden email]>:
>
>
> 2007/12/14, Loïc Brarda <[hidden email]>:

> > I don't see any kfile-plugin there. For me, it first tries to load
> > metadata through Exiv2 then if it fails, it tries to use DCraw. Adding
> > kfile-plugin when DCraw fails could be a non invasive and extensible
> > way to do it (On supported files, Exiv2 will probably always be more
> > complete than kfile-plugins).
> >
> > bool DMetadata::load(const QString& filePath)
> > {
> >     // In first, we trying to get metadata using Exiv2,
> >     // else we will use dcraw to extract minimal information.
> >
> >     if (!KExiv2::load(filePath))
> >     {
> >         if (!loadUsingDcraw(filePath))
> > ->     {
> > ->          if (!loadUsingKfilePlugins(filePath))
> >                 return false;
> > ->       }
> >     }
> >
> >     return true;
> > }
> >
> > '->' lines beeing lines inserted in the load method. And of course,
> > loadUsingKfilePlugins function has to be implemented.
>
> There is no KMetadata in DMetadata class, but in image properties panel :
>
> http://websvn.kde.org/branches/extragear/kde3/graphics/digikam/libs/imageproperties/imagepropertiestab.cpp?revision=670778&view=markup
>
> ... where KFileMetaInfo is called ...
>
> Gilles
>

Would not it be better to get all metadata in DMetadata class instead
of getting some in image properties panel and some in the class ? Is
there any metadata that KFileMetaInfo gets and not Exiv2, for file
types that Exiv2 supports ?

Regards,
  Loïc
(Who is actually doing some inventory at works, which is so
passionating that he tends to look somewhere ele more interesting ;-)
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: video metadata support: req. guidance

Loïc Brarda-2
In reply to this post by Gilles Caulier-4
2007/12/14, Gilles Caulier <[hidden email]>:

>
>
>
> 2007/12/14, Loïc Brarda <[hidden email]>:
> > 2007/12/14, Loïc Brarda <[hidden email]>:
> >
> > > '->' lines beeing lines inserted in the load method. And of course,
> > > loadUsingKfilePlugins function has to be implemented.
> > >
> > > Cheers,
> > >   Loïc
> > >
> >
> > The KFileMetaInfo KDE Class
> >
> (http://developer.kde.org/documentation/library/3.4-api/kio/html/classKFileMetaInfo.html#_details
> )
> > would probably do most of the job.
> > Function DMetadata::loadUsingDcraw will show how to set the fields.
>
> Sure...
>
> But the problem is how to decript the metadata content provided by
> KFileMetaInfo, especialy to get the field that we need...
>
> Like you can see, KFileMetaInfo class API doc do not help in this way...
>
> Gilles
>

Yes. The source code from the plugins themselves tells what needs to
be known (http://websvn.kde.org/branches/KDE/3.5/kdemultimedia/kfile-plugins/).

Cheers,
  Loïc
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: video metadata support: req. guidance

Bugzilla from dani@zubinet.org
Thanks Gilles and Loïc for your replies.

I decided that first I will try to implement metadata support for the matroska
container format. I belief that avi does not really support metadata. The
most common containers with metadata support are ASF, MP4, Quicktime and VOB.
I think ASF support is out of question because of M$ patents, maybe the same
for Quicktime. I did not yet find useful documentation about metadata in MP4
and VOB.
Matroska on the other hand might not be as widespread as the others at the
moment, but it officially supports metadata and many tags are standardized
and documented.
A matroska container can contain any audio-/videostream, so maybe it could be
an option to just pack any video file without metadata support in a matroska
container automatically.
Anyway support for other containers can be added later..

I did not have more time yet than for a quick glance at the code and I will be
away from this friday for 2.5 weeks (will be trying out my new gadget, the
gps logger, and the geotagging capabilities of digikam). Afterwards I will
have all the more reason to get video metadata implemented soon ;)

wish you guys pleasant christmas holydays and a happy new year!

Daniel

On Friday, 14. December 2007, Loïc Brarda wrote:

> 2007/12/14, Gilles Caulier <[hidden email]>:
> > 2007/12/14, Loïc Brarda <[hidden email]>:
> > > 2007/12/14, Loïc Brarda <[hidden email]>:
> > > > '->' lines beeing lines inserted in the load method. And of course,
> > > > loadUsingKfilePlugins function has to be implemented.
> > > >
> > > > Cheers,
> > > >   Loïc
> > >
> > > The KFileMetaInfo KDE Class
> >
> > (http://developer.kde.org/documentation/library/3.4-api/kio/html/classKFi
> >leMetaInfo.html#_details )
> >
> > > would probably do most of the job.
> > > Function DMetadata::loadUsingDcraw will show how to set the fields.
> >
> > Sure...
> >
> > But the problem is how to decript the metadata content provided by
> > KFileMetaInfo, especialy to get the field that we need...
> >
> > Like you can see, KFileMetaInfo class API doc do not help in this way...
> >
> > Gilles
>
> Yes. The source code from the plugins themselves tells what needs to
> be known
> (http://websvn.kde.org/branches/KDE/3.5/kdemultimedia/kfile-plugins/).
>
> Cheers,
>   Loïc
> _______________________________________________
> Digikam-devel mailing list
> [hidden email]
> https://mail.kde.org/mailman/listinfo/digikam-devel



--
/"\
\ /  ASCII Ribbon Campaign
 X   - against HTML email
/ \  & micro$oft attachments
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel