[Mjpeg-users] yuv4mpeg with audio?

2007-10-17 Thread David McNab
Hi,

The yuv4mpeg stream format is truly great, and has facilitated the
inter-operability of many fine tools.

But as we all know, it doesn't support audio.

Can anyone please recommend a similar lossless streaming format, but one
which:
 - has an available API with similar simplicity to mjpeg yuv4mpeg API
 - supports audio
 - is suitable for piping via stdio, like the mjpeg y4m tools

Cheers
David



-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
___
Mjpeg-users mailing list
Mjpeg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mjpeg-users


[Mjpeg-users] ANN: y4m version 0.1.1

2007-09-29 Thread David McNab
Hi all,

Just a quick message to announce the latest release (v0.1.1) of the
'y4m' framework. www.freenet.org.nz/y4m

What is 'y4m'?

y4m is a python framework for manipulating yuv4mpeg video streams. It
offers an intuitive Python API for:

 - opening yuv4mpeg streams for reading from stdin or a file (or
   auto-converting from any other video format ffmpeg can cope with)

 - opening yuv4mpeg streams for writing to stdout or a file (or
   autoconverting to any other video format ffmpeg can handle)

 - reading/changing stream and frame attributes

 - manipulating frames at any level - as rows/columns, or as pixels,
   or as Y,Cb,Cr planes

 - performing basic editing operations, such as:
- scaling
- cropping
- clipping (eg taking 15 secs of a stream after the first minute)
- flipping
- overlaying
- cross-fading (also known as 'dissolve')
- transparency
- polygon fill
- arbitrary rotation

 - simple keyframe interpolation

It also features a plugin architecture, whereby you can overcome the
performance penalties of python by invoking fast plugins written in C. 

The plugin interface offers a simple and powerful framework to support
writing your own plugins easily, and comes with several working example
plugins).

y4m is a toolkit you can use for writing your own yuv4mpeg stdio
filters, or even building your own video editing software.

y4m is still in alpha, but works quite well on 32-bit architecture.

(I can't guarantee it on 64-bit just yet - at least not till I've pulled
out all the lurking (sizeof)int==(sizeof)(*) assumptions.  Anyone with
64-bit architecture is welcome to try it - I'd love to hear how you get
on with it.)

All feedback, suggestions, patches, bouquets, brickbats etc welcome.

Cheers
David




-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
Mjpeg-users mailing list
Mjpeg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mjpeg-users


[Mjpeg-users] ANN: yuvgimp

2007-09-15 Thread David McNab
Hi all,

I've released an intial, alpha, proof-of-concept version of 'yuvgimp',
which allows yuv4mpeg streams to be processed in GIMP, one frame at a
time.

yuvgimp works like the other piping yuv4mpeg tools, receiving a y4 feed
on standard input, piping each frame into a running GIMP process, and
sending the processed frames as a y4 feed to stdout.

Included with yuvgimp is a wrapper script which starts up a GIMP batch
process, embeds an XML-RPC server into it, such that this GIMP can
accept frames and processing commands via XML-RPC requests (yuvgimp
itself is an XML-RPC client).

Writing your own yuvgimp processing filters requires a real tiny amount
of python scripting knowledge, plus some willingness to browse through
the available GIMP PDB repository. It's all pretty straightforward, and
there's a simple but meaningful example included.

yuvgimp is part of my 'y4m' python yuv4mpeg wrapper package. The whole
thing is available at:

  www.freenet.org.nz/y4m

Enjoy!

Cheers
David




-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
Mjpeg-users mailing list
Mjpeg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mjpeg-users


Re: [Mjpeg-users] yuvdeinterlace bug?

2007-09-13 Thread David McNab
On Fri, 2007-09-14 at 14:27 +1000, Mark Heath wrote:
> :-) yeah that's my version.

Ohh, oops!

> I am thinking about doing something more intelligent than line  
> doubling. (maybe adaptive blending)

Oh yes, please do! :)

> And making better support for different chroma subsampling, but maybe  
> next week.

Less urgent, since many yuv4mpeg tools seem to be hardwired to 4:2:0.

But in a perfect world, all the tools would support all the ss modes.

> There are a lot of good deinterlacing algorithms out there but most  
> of the implementations are for systems other than mjpegtools.

mjpegtools absolutely needs a lossless deinterlacer.

> I also improved my weighted average framerate converter after seeing  
> that yuvfps was giving incorrect results on converting to very slow  
> framerates. (1fps)

I've been getting great results with yuvmotionfps, especially when block
size and search radius are tuned appropriately for the footage.

> I'm finding the motion compensating de-interlacers a little slow and  
> the artefacts it introduces a little annoying.

Better IMHO to go progressive at double framerate.

> Thanks for the support, it's good to hear that it is making use  
> somewhere, if you need any improvements, let me know.

I've just updated and uploaded my Python yuv4mpeg wrappers, this time
adding a much nicer/leaner/cleaner wrapper built with Pyrex. Performance
is surprisingly good given that Python code is iterating over every
pixel.

What would be brilliant is a tool to convert 4:2:0 to 4:4:4alpha and
back, and for all the mjpegtools and 3rd party yuv4mpeg tools to support
4:4:4alpha. Doing the maths to convert 4:2:0 YUV to RGB and back is
presently a coding pain and a resource waster.

And - would be awesome if ffmpeg had options to output YUV streams with
any chroma subsampling. It seems hardwired to 4:2:0 at the moment.

Cheers
David


> 
> Mark
> 
> 
> -
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2005.
> http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
> ___
> Mjpeg-users mailing list
> Mjpeg-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mjpeg-users


-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
Mjpeg-users mailing list
Mjpeg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mjpeg-users


Re: [Mjpeg-users] yuvdeinterlace bug?

2007-09-13 Thread David McNab
There's an alternative implementation of yuvdeinterlace, unfortunately
with the same name, at:

http://silicontrip.net/~mark/lavtools/

This version performs lossless deinterlacing (extracting the fields, and
generating a stream with both fields set to double the frame rate). It
also has a 'reinterlace' option which does the reverse.

Since coming across this alternate version, I've deleted mjpegtools'
'yuvdeinterlace' from my system.

Cheers
David

On Thu, 2007-09-13 at 19:29 -0700, Steven M. Schultz wrote:
> On Fri, 14 Sep 2007, Mark Heath wrote:
> 
> > I haven't looked thoroughly into this but it appears that the version  
> > of yuvdeinterlace crashes on 480 height files, while works fine on  
> > 576 height files.
> 
>   yuvdeinterlace has had buffer allocation/addressing issues - in one
>   case would end up calculating addresses outside of malloc'd memory 
> 
>   I made a commit on March 6 2007 to work around one crash.
> 
> http://sourceforge.net/mailarchive/message.php?msg_id=E1HOOPS-0005dV-Gr%40sc8-pr-cvs7.sourceforge.net
> 
> > I'm not sure which version I am using, the tool doesn't have any  
> > version information, it is the Motion-Compensating-Deinterlacer.  I  
> > did compile it from the 1.9.0rc2, I'm not sure if there have been any  
> 
>   There have been a few changes to the tools since 1.9.0rc2 - I know that
>   I had to disable the use of some Altivec routines if yuvdeinterlace
>   was used on a PPC platform.
> 
> > Thread 0 Crashed:
> > 0__memcpy + 556 (cpu_capabilities.h:189)
> > 1deinterlacer::temporal_reconstruct_frame(unsigned char*,  
> > unsigned char*, unsigned char*, unsigned char*, int, int, int) + 108  
> > (yuvdeinterlace.cc:175)
> > 2deinterlacer::deinterlace_motion_compensated() + 112  
> > (yuvdeinterlace.cc:709)
> > 3main + 1856 (yuvdeinterlace.cc:1033)
> > 4_start + 340 (crt.c:272)
> > 5start + 60
> 
>   That looks somewhat familiar.
> 
>   You should be able to fetch the CVS version - just ignore the mpeg2enc
>   executable (save your old one).
> 
>   Steven Schultz
> 
> 
> -
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2005.
> http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
> ___
> Mjpeg-users mailing list
> Mjpeg-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mjpeg-users


-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
Mjpeg-users mailing list
Mjpeg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mjpeg-users


Re: [Mjpeg-users] ANN: Python and C++ bindings for yuv4mpeg.h

2007-09-03 Thread David McNab
On Mon, 2007-09-03 at 16:07 +0200, Bernhard Praschinger wrote:
> Hallo
> 
> > I've built some bindings for the yuv4mpeg API, supporting both Python
> > and C++.
> > 
> > http://www.freenet.org.nz/pyyuv4mpeg/
> > 
> > Based on SWIG, implements virtually the whole API as given in
> > yuv4mpeg.h, and also implements a high-level 'Stream' class in both C
> > and Python.


> Cool :)
> 
> Do you mind if I put information about your binding on the news page on 
> the mjpegtools homepage ? (including a link to your page)

Please feel free. :)

This is a first release, from the tests I've done so far it seems the
binding Just Works (TM), but it needs users to throw all kinds of things
at it to expose any issues and raise opportunities for improvement.

Another thing it needs is for Perl hackers to add some Perl-isms, Ruby
hackers to add some Ruby-isms etc.

Cheers
David

> auf hoffentlich bald,
> 
> Berni the Chaos of Woodquarter
> 
> Email: [EMAIL PROTECTED]
> www: http://www.lysator.liu.se/~gz/bernhard
> 
> -
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems?  Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >>  http://get.splunk.com/
> ___
> Mjpeg-users mailing list
> Mjpeg-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mjpeg-users


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
___
Mjpeg-users mailing list
Mjpeg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mjpeg-users


[Mjpeg-users] ANN: Python and C++ bindings for yuv4mpeg.h

2007-09-02 Thread David McNab
Hi,

I've built some bindings for the yuv4mpeg API, supporting both Python
and C++.

http://www.freenet.org.nz/pyyuv4mpeg/

Based on SWIG, implements virtually the whole API as given in
yuv4mpeg.h, and also implements a high-level 'Stream' class in both C
and Python.

Enjoy

Cheers
David




-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
___
Mjpeg-users mailing list
Mjpeg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mjpeg-users


Re: [Mjpeg-users] keyframe automation with yuv4mpegpipe-style tools

2007-08-29 Thread David McNab
On Thu, 2007-08-30 at 00:20 +1200, David McNab wrote:
> Hi,
> 
> Is there a sane way to perform, with the various yuv4mpegpipe-based
> tools, something comparable to the keyframe-based automation found in
> graphical video editors such as Cinelerra?

I had a thought on how this could be achieved with a simple protocol,
implemented in the respective y4 tools.

Imagine if a y4 tool could accept a command line option such as
 
 '-automate '

and if the file given has one or more lines of the form:

 frame_no -option1 value1 -option2 value2 ...

where 'frame_no' is the frame number from which a new set of options
should take effect, and '-option1 value1...' is one or more options
normally accepted by that tool.

Then, dynamic settings changes over time could be a fairly
straightforward matter.

The downside of this is that each of the y4 tools would need to be
hacked into new versions which support this scheme, hopefully not too
difficult a task.

The upside is not having to create a whole new stream format, and being
able to use existing versions of y4 tools wherever dynamically changing
settings are not needed.

With this little tweak, then a good arsenal of y4 tools would be able to
do nearly anything that currently needs a graphical video editor.

Unless someone suggests a better way to go about it, I might try adding
this hack to a couple of the simpler y4 tools, and write a generic
'interpolater' prog which can generate the automate files.

Hope I've made sense with all this.

Looking forward to your thoughts

Cheers
David




-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
___
Mjpeg-users mailing list
Mjpeg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mjpeg-users


[Mjpeg-users] keyframe automation with yuv4mpegpipe-style tools

2007-08-29 Thread David McNab
Hi,

Is there a sane way to perform, with the various yuv4mpegpipe-based
tools, something comparable to the keyframe-based automation found in
graphical video editors such as Cinelerra?

The only (insane) way I can think of is to:
 - determine start and end points (keyframes) of automated transition
 - determine a function which interpolates settings between these
   keyframes
 - break up the set of frames into short sequences, for which the
   settings are the same
 - for each subset of frames, run the required piped tools with
   the interpolated setting values

Example - given PAL 25fps video, start at normal zoom, then increase to
2x zoom between frame 100 and frame 200. This would require running a
yuv4mpegpipe zoom tool such as y4mscaler on one frame at a time, each
frame with different options passed to y4mscaler.

I'm worried that if I do this, the cost of having a tool like y4mscaler
starting and stopping one per frame, with different options each time,
will get totally ridiculous.

So is something like keyframe-based automation a totally crazy idea for
yuv4mpegpipe-based pipe tools? Or is there a better way than what I've
discussed.

Thanks in advance for your thoughts

Cheers
David



-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
___
Mjpeg-users mailing list
Mjpeg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mjpeg-users


[Mjpeg-users] tool collections

2007-08-29 Thread David McNab
Hi,

I'm looking to build up a big tool-chest of yuv4mpeg pipe-based tools,
such as those in the mjpeg-tools collection.

So far I've stumbled across a few third-party tools, such as the
excellent yuvmotionfps (framerate converter with motion compensation),
plus a handful of others.

Why I want this is so that I can build up a different editing framework,
as an alternative to the temperamental 'cinelerra' gui-based video
editor.

If there's anyone reading this who is into building/sharing
yuv4mpeg-compatible tools, or has a few links to tool collections,
please speak up.

Some things I'm interested in:
 - zooming/translating/cropping
 - layered video, for instance one video stream as an inset over
   the top of another
 - motion correction
 - colour, hsv, brightness/contrast adjustment
 - chroma key
 - freeze frame
 - video loops
 - animated titles
 - other tools for common video editing tasks

In time, I'll be looking to writing and sharing my own yuv4mpeg-based
tools.

All help appreciated

Cheers
David



-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
___
Mjpeg-users mailing list
Mjpeg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mjpeg-users