Re: Screen recorder - Kazam

2012-01-02 Thread David Klasinc
On 01/01/2012 07:47 PM, Sean McNamara wrote:

 IMHO you shouldn't directly use ffmpeg, libx264, or any other library.
 For all of your media needs, just use GStreamer. GStreamer has gst
 plugin wrappers for all of the useful ffmpeg codecs (gst-ffmpeg), and
 it has plugin wrappers for all of the important standalone codec
 libraries (including x264). The challenge is getting the user to
 install them. ;)

gst-ffmpeg is terribly undocumented and I think there is no real need
for me to use it. I need to support a handful of codecs, not every
single one there is.

x264enc didn't work because of unknown reasons at the time being and it
really pissed me off because I know it used to work. Five minutes ago I
realized why it didn't work and I got it working now. It was a serious
case of PEBKAC ... To make it short, I was testing with a smaller window
800x800, H264 video size must be divisible by 2 and x264 starts counting
with 0. : I'll hack x264 as an option.

 For starters, you could add most of the gstreamer plugins packages as
 either suggested or recommended in the Debian source package. If the
 packages somehow don't get installed automatically (they would get

Right now I have base and bad plugins as a requirement and this covers
everything I need. For x264 I'll also need ugly plugins package. If that
is installed everything should work.

 you can proceed to allow the user to use the
 app, but you would want to make them aware that some of the supported
 codecs aren't available due to missing packages.

This is a really neat idea. I'll probably make webm default and a
requirement and x264 will be an optional feature.

  but on Ubuntu, I think it's
 there in gst-plugins-ugly in multiverse or restricted (correct me if
 I'm wrong).

If I can read this page correctly and the information is valid, it seems
that uglies are in the universe.

http://packages.ubuntu.com/oneiric/libs/gstreamer0.10-plugins-ugly

 If you want to go with Python, I can't really help you with the
 implementation details, since I am only a novice at Python
 programming. But I can wish you lots of luck, and still help out with
 things like the overall codec approach.

I'm still contemplating Python and Vala. I'll see what time will bring.
:) I'm quite fluent in python so it would be my first choice. Vala,
however, is becoming a defacto standard for Gnome development and that's
why I am considering it.

 I'm allquixotic on freenode, so feel free to ping me. We can even
 create a new channel for Kazam!

Not all that bad idea. I registered a channel, BigWhale will be idling
there mostly. :)

Regards,
David

-- 
ubuntu-desktop mailing list
ubuntu-desktop@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-desktop


Re: Screen recorder - Kazam

2012-01-01 Thread David Klasinc
Thanks for the response Sean,

On 12/31/2011 09:03 PM, Sean McNamara wrote:

 Very cool! While I completely agree that these codec choices should be
 the default, is it easy for the user to configure Kazam to use some
 other codec? I'm not saying VP8/WebM is bad; rather, I'm saying some
 other codecs may have their uses (e.g. if you intend to distribute it
 as a raw video and you want the highest platform compatibility, VP8 is
 still not that heavily adopted on older Windows systems, or even older
 Linux distros). And the quality will be much higher if it is encoded
 directly to the format that you intend to distribute it in, rather
 than performing lossy transcoding.

VP8 is a trade-off between quality and availability. Codecs and their
support in most modern Linux distribution is still a nightmare. There
are different versions of libraries that support different sets of
parameters and options. VP8 is something that is available everywhere
and has a decent support in GStreamer.

Kazam initially encoded videos with ffmpeg and used libx264 (getting
this to work on Linux is not an easy task even now. You have to build
ffmpeg from source because of all the licensing and patent issues.

Personally I would prefer H264 over VP8. H264 is better, performance
wise and quality wise. VP8 is still a resource hog and encoding full
screen video with more than 15 fps in realtime can be challenging.

In the long run I want to support different codecs with some kind of
auto detection what is available and what not.


 The best place to get started is to read
 https://wiki.ubuntu.com/ContributeToUbuntu -- and follow the links
 from there.

I'll take a look there. Hopefully I can find a checklist document about
inclusion in the distro. :)

 Although if you are able, and there are no really challenging
 roadblocks, you should go ahead and try with GTK3.

I'd like to get rid of GTK2 as soon as possible. :) This is the very
first thing on my agenda after I deal with the codec issues and ffmpeg.

 Are there any really low-level GTK2 APIs that Kazam uses that might've
 been removed or significantly changed in GTK3? I guess I could read
 the source, but I'm getting ready to head out the door right now,
 so...

Kazam is written in python and uses pygtk. As far as I know pygtk is
becoming obsolete fast and I'll have to do a rewrite sooner or later. I
am still deciding if I should do a rewrite in Vala or keep python and
use PyGobject. I am equally unfamiliar with PyGObject and Vala. :)


Regards,
David

-- 
ubuntu-desktop mailing list
ubuntu-desktop@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-desktop


Screen recorder - Kazam

2011-12-31 Thread David Klasinc
Greetings,

Recently I picked up Kazam Screencaster. I needed to record something
and noticed that Kazam is not working and has some dependency issues in
Oneiric. After trying out few other solutions none of them really suited
me. Around Christmas I started working on Kazam and made some
improvements while solving those dependency problems.

Andrew Higginson stopped working on the project and made me a member of
Kazam team on Launchpad so I can take over from here.

https://launchpad.net/kazam

Right now most of the development is done in my PPA until I get things
stable enough and merge them in the stable branch of the project.

https://launchpad.net/~bigwhale/+archive/kazam-oneric

(yes, the typo should be there :/)

Quick rundown of changes that I made:

- Default backend is now gstreamer.
- Video is encoded with vp8 instead of x264.
- Audio is encoded with Ogg Vorbis.
- Audio/Video container is now WebM.
- Package dependencies revised to include only essential packages.
- Basic Pulseaudio support.
- Independent audio input device selection
- Volume setting slider in the works
- The path to multiple source recording is now open. Next release should
support recoding audio on two channels (application sounds and
voice-over commentary, for example).

Currently Kazam is still GTK2 and I'd like few pointers on what needs to
be done if I want Kazam to be included in the Ubuntu repositories for
Precise Pangolin. And if I missed the mailing list, someone please kick
me in the right direction. :)


(more detailed explanation on my changes and future plans are posted on
my blog: http://www.twm-kd.com/linux/kazam-screencaster-0-12/ )

So much for now and a Happy 2021 to everyone!

Regards,
David




-- 
ubuntu-desktop mailing list
ubuntu-desktop@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-desktop


Re: Screen recorder - Kazam

2011-12-31 Thread Sean McNamara
Hi,

On Sat, Dec 31, 2011 at 2:23 PM, David Klasinc bigwh...@lubica.net wrote:
 Greetings,

 Recently I picked up Kazam Screencaster. I needed to record something
 and noticed that Kazam is not working and has some dependency issues in
 Oneiric. After trying out few other solutions none of them really suited
 me. Around Christmas I started working on Kazam and made some
 improvements while solving those dependency problems.

 Andrew Higginson stopped working on the project and made me a member of
 Kazam team on Launchpad so I can take over from here.

Cool! Congrats on volunteering to maintain this project! :) I'm not
familiar with Kazam, but I'm learning about it now, since it seems
interesting and useful...


 https://launchpad.net/kazam

 Right now most of the development is done in my PPA until I get things
 stable enough and merge them in the stable branch of the project.

 https://launchpad.net/~bigwhale/+archive/kazam-oneric

 (yes, the typo should be there :/)

 Quick rundown of changes that I made:

 - Default backend is now gstreamer.
 - Video is encoded with vp8 instead of x264.
 - Audio is encoded with Ogg Vorbis.
 - Audio/Video container is now WebM.

Very cool! While I completely agree that these codec choices should be
the default, is it easy for the user to configure Kazam to use some
other codec? I'm not saying VP8/WebM is bad; rather, I'm saying some
other codecs may have their uses (e.g. if you intend to distribute it
as a raw video and you want the highest platform compatibility, VP8 is
still not that heavily adopted on older Windows systems, or even older
Linux distros). And the quality will be much higher if it is encoded
directly to the format that you intend to distribute it in, rather
than performing lossy transcoding.

 - Package dependencies revised to include only essential packages.
 - Basic Pulseaudio support.
 - Independent audio input device selection
 - Volume setting slider in the works
 - The path to multiple source recording is now open. Next release should
 support recoding audio on two channels (application sounds and
 voice-over commentary, for example).

 Currently Kazam is still GTK2 and I'd like few pointers on what needs to
 be done if I want Kazam to be included in the Ubuntu repositories for
 Precise Pangolin. And if I missed the mailing list, someone please kick
 me in the right direction. :)

The best place to get started is to read
https://wiki.ubuntu.com/ContributeToUbuntu -- and follow the links
from there.

You're already very far along because you've already:
-Written the software
-Created a source package for DPKG
-Put it in a PPA
-Communicated with the community announcing your package and soliciting feedback

This is a very large step in the right direction. The rest, as they
say, is testing/validation and politics. :)

Also I'm not 100% sure but you can probably get it accepted into
Precise (in Universe, dunno about Main) with a GTK2 UI. The GTK2 libs
will continue to stick around for years and years (and years) to come.
Although if you are able, and there are no really challenging
roadblocks, you should go ahead and try with GTK3.

My general porting strategy for GTK3:

1. Build against the gtk3 libs and headers in your build system (easy)
2. Fix any compilation errors (can require some rewriting, but not
that much usually)
3. Fix any linkage errors (can be painful if your favorite API is gone)
4. Test it out like crazy to make sure that everything works
equivalently at runtime (time-consuming but easy)

Are there any really low-level GTK2 APIs that Kazam uses that might've
been removed or significantly changed in GTK3? I guess I could read
the source, but I'm getting ready to head out the door right now,
so...

Anyway, Happy New Year to you as well, and thanks for working on this
and being interested in contributing!

Disclosure: I am not an Ubuntu Developer, though I do host a project
on Launchpad, package it in a PPA, and have expressed interest in
getting it into Universe in the past... so we are pretty much at the
same stage :)

Regards,

-Sean




 (more detailed explanation on my changes and future plans are posted on
 my blog: http://www.twm-kd.com/linux/kazam-screencaster-0-12/ )

 So much for now and a Happy 2021 to everyone!

 Regards,
 David




 --
 ubuntu-desktop mailing list
 ubuntu-desktop@lists.ubuntu.com
 https://lists.ubuntu.com/mailman/listinfo/ubuntu-desktop

-- 
ubuntu-desktop mailing list
ubuntu-desktop@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-desktop