VideoEdit: Difference between revisions
(Updating) |
(reformulating (not done yet)) |
||
Line 1: | Line 1: | ||
{{TOCright}} |
{{TOCright}} |
||
'''VideoEdit''' |
'''VideoEdit''' |
||
Designing to my SoC 2008 application, the design isn't ready yet. [[User:Faga|Faga]] |
Designing to my SoC 2008 application, the design isn't ready yet. [[User:Faga|Roberto Faga]] 27 March 2008 |
||
Also, this application is intended to integrate/work together with [[VideoEditing]]. |
|||
== Idea == |
== Idea == |
||
Line 7: | Line 8: | ||
The main idea of this activity is to provide simple operations with videos. It is not intended to be complex, the easier the better. This should let a young child cut and paste parts of a video, record his voice over a video, put text as a subtitle or as a note and many other annotation operations. So the idea is not to only provide the simple operations which every video editor have - like copy, cut, add effects (not intended to the first version) - but to provide annotation (or comments). After the first release, this application can so start to explore collaboration - children seeing annotations by other children and annotating over it. |
The main idea of this activity is to provide simple operations with videos. It is not intended to be complex, the easier the better. This should let a young child cut and paste parts of a video, record his voice over a video, put text as a subtitle or as a note and many other annotation operations. So the idea is not to only provide the simple operations which every video editor have - like copy, cut, add effects (not intended to the first version) - but to provide annotation (or comments). After the first release, this application can so start to explore collaboration - children seeing annotations by other children and annotating over it. |
||
The edit/annotate operations can be done with basic operations - like arranging different sounds and videos into a final video and annotating in a video - or with more advanced operations - like adding possible effects and more precisely operations. The activity can have three possible approaches: |
|||
'''Note:''' This activity design doesn't focus in capture of video/image/sound like Record activity. This activity is intended to provide Edit power to videos, and could be extended to audio too, and does not only capture from camera / microphone, it permits from any source. A possible integration will be really nice in the future, but extending Record activity to this activity could turn Record activity too complex - anyway, this could be studied to use as a tab. |
|||
# Be integrated with Record activity, in some new tabs, exactly like [[VideoEditing]] idea. It is good to the annotations and to a quick video production, but it can turns Record activity too heavy/complex - maybe ordering nicely all operations can turn good to use integrated. |
|||
== Video Editing == |
|||
# Be a separated activity, with no relation with any other activity. It turns more easier to use and maintain the code, but opening a new activity for video annotating doesn't sounds so good. |
|||
# Mix both ideas, so a separated activity for most complex operations and mixed operations into Record activity for simple operations, like annotations and simple edit. |
|||
I personally prefer the first approach, as is easier to use and integrates with another big activity, Record. Also, this activity can work in a tab mode, limited only to the tab (not depending of any other place of Record activity) so it can be incorporated into any other activity just importing the VideoEdit toolbar and starting it, something like this. With this method, the edit operations can be added , e.g., in a video player, allowing users to edit/annotate even videos on the Internet. |
|||
There is already an activity with a similar purpose, but not done yet, at [[Projects/VideoEditing]]. It's a nice idea to implement this tool together, and use gnonlin with python bindings looks very great to this activity. |
|||
== Designed Operations == |
== Designed Operations == |
||
Line 22: | Line 25: | ||
* '''Add texts,parallel videos and pictures:''' This part starts with a complex type of operation, annotating texts and merging videos and pictures. When this operation completes, a small animation maker is done, as user can do some presentations and using the power of technologies like SMIL. |
* '''Add texts,parallel videos and pictures:''' This part starts with a complex type of operation, annotating texts and merging videos and pictures. When this operation completes, a small animation maker is done, as user can do some presentations and using the power of technologies like SMIL. |
||
== |
== Implementation == |
||
Project should be done with Python and pygtk/sugar elements as they are needed. Integrating with Record activity is a great feature to do, but this depends of Record coders to help me on this (and permit me). The activity can be an activity separated, totally integrated with Record activity or using both methods. Developing integrated with Record can be nice if VideoEdit offers only a toolbar and a widget that can be used in Record activity but in any other activity, like a video player or any other media tool. As library to use, [[VideoEditing]] is using a good plugin for gstreamer: [http://gnonlin.sourceforge.net/ GNonLin]. It's the same plugin used by [http://www.pitivi.org/ PiTiVi video editor], looks to have easy edit operations, but it lacks more documentation. Even without complete doc, it looks a good solution as Sugar already uses gstreamer. |
|||
⚫ | |||
== Schedule == |
|||
Here I'm showing a possible schedule to the project. It's something that I can feel I can complete alone, but working together with [[VideoEditing]] should bring more/better results. |
|||
--- Elaborating it... --- |
|||
== Difficulties == |
|||
⚫ | |||
⚫ | |||
⚫ | * '''Memory to store editable version''' - XO has a short memory. So, how could we store the editable version of video? One possible solution is to use SMIL and convert all media used in the OUTPUT wish-format (like only ogg/theora+vorbis), and this also support annotation. Also, storing old videos in the server could be done too. |
||
⚫ | * |
||
⚫ | * '''Plugins to work with videos''' - outputing only ogg/Theora is nice to the application, but opening only this type of video can restrict activity a lot. For an example, user can get a video in mpeg1/2/4, xvid, flv formats. Without this support can be frustrating to a child to edit videos - even play them, as until this moment there isn't a specific video player activity. gstreamer installed in XO can open how many video formats? I think this isn't a problem from this activity only, but from any other media-related activity, as we have problems with licenses and patents of each video/audio type depending to where XO will be delivered. To solve this problem, I just pretend to work with what XO supports - and perhaps suggesting a server video-converter based tool if memory to store plugins is a problem. |
||
* (Probably resolved) '''Rendering video''' - How can I render videos? With gstreamer? Is gstreamer fully workable in XO? |
Revision as of 05:04, 27 March 2008
VideoEdit Designing to my SoC 2008 application, the design isn't ready yet. Roberto Faga 27 March 2008 Also, this application is intended to integrate/work together with VideoEditing.
Idea
The main idea of this activity is to provide simple operations with videos. It is not intended to be complex, the easier the better. This should let a young child cut and paste parts of a video, record his voice over a video, put text as a subtitle or as a note and many other annotation operations. So the idea is not to only provide the simple operations which every video editor have - like copy, cut, add effects (not intended to the first version) - but to provide annotation (or comments). After the first release, this application can so start to explore collaboration - children seeing annotations by other children and annotating over it.
The edit/annotate operations can be done with basic operations - like arranging different sounds and videos into a final video and annotating in a video - or with more advanced operations - like adding possible effects and more precisely operations. The activity can have three possible approaches:
- Be integrated with Record activity, in some new tabs, exactly like VideoEditing idea. It is good to the annotations and to a quick video production, but it can turns Record activity too heavy/complex - maybe ordering nicely all operations can turn good to use integrated.
- Be a separated activity, with no relation with any other activity. It turns more easier to use and maintain the code, but opening a new activity for video annotating doesn't sounds so good.
- Mix both ideas, so a separated activity for most complex operations and mixed operations into Record activity for simple operations, like annotations and simple edit.
I personally prefer the first approach, as is easier to use and integrates with another big activity, Record. Also, this activity can work in a tab mode, limited only to the tab (not depending of any other place of Record activity) so it can be incorporated into any other activity just importing the VideoEdit toolbar and starting it, something like this. With this method, the edit operations can be added , e.g., in a video player, allowing users to edit/annotate even videos on the Internet.
Designed Operations
Here it is listed some operations that VideoEdit could have (feel free to add anything desired):
- Cut/Copy/Paste: these basic operations are expected to have in the first version. They are essential to any video editing.
- Audio mix/extract/replace: working with audio extract, mix and replace to let user to change the audio of a video, mix with another and record with microphone a new audio.
- Convert videos: if this activity has a nice library with many codecs, an operation to simple convert videos op will be nice. Storing a big mpeg video in some other video format lesser than mpeg.
- Add texts,parallel videos and pictures: This part starts with a complex type of operation, annotating texts and merging videos and pictures. When this operation completes, a small animation maker is done, as user can do some presentations and using the power of technologies like SMIL.
Implementation
Project should be done with Python and pygtk/sugar elements as they are needed. Integrating with Record activity is a great feature to do, but this depends of Record coders to help me on this (and permit me). The activity can be an activity separated, totally integrated with Record activity or using both methods. Developing integrated with Record can be nice if VideoEdit offers only a toolbar and a widget that can be used in Record activity but in any other activity, like a video player or any other media tool. As library to use, VideoEditing is using a good plugin for gstreamer: GNonLin. It's the same plugin used by PiTiVi video editor, looks to have easy edit operations, but it lacks more documentation. Even without complete doc, it looks a good solution as Sugar already uses gstreamer.
Schedule
Here I'm showing a possible schedule to the project. It's something that I can feel I can complete alone, but working together with VideoEditing should bring more/better results.
--- Elaborating it... ---
Difficulties
Here are some possible difficulties that this project can have and how do I pretend to resolve them:
- Memory to store editable version - XO has a short memory. So, how could we store the editable version of video? One possible solution is to use SMIL and convert all media used in the OUTPUT wish-format (like only ogg/theora+vorbis), and this also support annotation. Also, storing old videos in the server could be done too.
- Plugins to work with videos - outputing only ogg/Theora is nice to the application, but opening only this type of video can restrict activity a lot. For an example, user can get a video in mpeg1/2/4, xvid, flv formats. Without this support can be frustrating to a child to edit videos - even play them, as until this moment there isn't a specific video player activity. gstreamer installed in XO can open how many video formats? I think this isn't a problem from this activity only, but from any other media-related activity, as we have problems with licenses and patents of each video/audio type depending to where XO will be delivered. To solve this problem, I just pretend to work with what XO supports - and perhaps suggesting a server video-converter based tool if memory to store plugins is a problem.