Friday, February 22, 2008

creating a bootable iso in Linux

OK. So call me stupid, but I rarely create bootable DVDs from iso images in Fedora. Here is how I created a bootable Ubuntu 7.10 disk using growisofs.

Burn the ISO image to a DVD
1) Put your DVD in your DVD drive

2) Make sure your drive is reading the disk properly by using dvd+rw-mediainfo. This program is part of the dvd+rw tools. The command should also give you a write speed estimate, which is handy.

[mule@ogre ~]# dvd+rw-mediainfo /dev/dvd
INQUIRY: [HP ][DVD Writer 940d ][3H23]
GET [CURRENT] CONFIGURATION:
Mounted Media: 11h, DVD-R Sequential
Media ID: ProdiscS03
Current Write Speed: 4.0x1385=5540KB/s
Write Speed #0: 4.0x1385=5540KB/s
Write Speed #1: 2.0x1385=2770KB/s
GET [CURRENT] PERFORMANCE:
Write Performance: 4.0x1385=5540KB/s@[0 -> 0]
Speed Descriptor#0: 00/0 R@6.4x1385=8864KB/s W@4.0x1385=5540KB/s
Speed Descriptor#1: 00/0 R@6.4x1385=8864KB/s W@2.0x1385=2770KB/s
READ DVD STRUCTURE[#10h]:
Media Book Type: 00h, DVD-ROM book [revision 0]
Legacy lead-out at: 2298496*2KB=4707319808
READ DVD STRUCTURE[#0h]:
Media Book Type: 25h, DVD-R book [revision 5]
Last border-out at: 2045*2KB=4188160
READ DISC INFORMATION:
Disc status: blank
Number of Sessions: 1
State of Last Session: empty
"Next" Track: 1
Number of Tracks: 1
READ TRACK INFORMATION[#1]:
Track State: invisible incremental
Track Start Address: 0*2KB
Next Writable Address: 0*2KB
Free Blocks: 2297888*2KB
Track Size: 2297888*2KB
READ CAPACITY: 0*2048=0


3) Using growisofs, burn the ISO image to a DVD. Note that I used this command on a DVD RW:
[mule@ogre ~]# growisofs -dvd-compat -Z /dev/dvd=ubuntu-7.10-desktop-amd64.iso
Executing 'builtin_dd if=ubuntu-7.10-desktop-amd64.iso of=/dev/dvd obs=32k seek=0'
/dev/dvd: "Current Write Speed" is 2.0x1352KBps.
3407872/2005147648 ( 0.2%) @0.5x, remaining 39:09 RBU 100.0% UBU 6.5%
12288000/2005147648 ( 0.6%) @1.9x, remaining 18:55 RBU 100.0% UBU 100.0%
..
1992097792/2005147648 (99.3%) @2.0x, remaining 0:04 RBU 77.9% UBU 100.0%
2001076224/2005147648 (99.8%) @1.9x, remaining 0:01 RBU 24.4% UBU 100.0%
builtin_dd: 979088*2KB out @ average 1.9x1352KBps
/dev/dvd: flushing cache
/dev/dvd: writing lead-out


The disc..she boots!
The Mule

Xine install on Fedora 7 x86-64

Another reason to dump FreshRPMs. I wanted to Xine on my Fedora 7, x86-64 system and got the following error:
Error: Missing Dependency: xine-lib = 1.1.7 is needed by package xine-lib-moles

Yuck. Upon investigation, it looks like FreshRPMs were screwing me up:
http://forums.fedoraforum.org/showthread.php?t=179979
http://forums.fedoraforum.org/showthread.php?t=180425

I was using FreshRPMs because they had previously worked on my Fedora Core 6 install:
/2007/06/xine-no-demuxer-plugin-available-to.html

Now that I was on Fedora 7, things had changed and those FreshRPM packages were no longer good. Specifically, I had some xine-lib packages installed from FreshRPMs which conflicted with either the Livna or Fedora base packages. I removed them:
[root@ogre ~]# yum remove xine-lib
=============================================================================
Package Arch Version Repository Size
=============================================================================
Removing:
xine-lib x86_64 1.1.6-2.fc7 installed 3.9 M

Removing for dependencies:
xine-lib-devel x86_64 1.1.6-2.fc7 installed 649 k

xine-lib-extras-nonfree x86_64 1.1.7-1.lvn7 installed 1.1 M


I then installed xine from only the Fedora base and Livna repositories:
[root@ogre ~]# yum install xine --disablerepo freshrpms
Loading "installonlyn" plugin

Setting up
Install Process
Parsing package install arguments
Resolving Dependencies
-->
Running transaction check
--->
Package xine.x86_64 0:0.99.5-1.lvn7 set to be updated
-->
Processing Dependency: libxine.so.1()(64bit) for package: xine
-->
Restarting Dependency Resolution with new changes.
-->
Running transaction check
--->
Package xine-lib.x86_64 0:1.1.10.1-1.fc7 set to be updated

Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
xine x86_64 0.99.5-1.lvn7 livna 1.6 M
Installing for dependencies:
xine-lib x86_64 1.1.10.1-1.fc7 updates 2.3 M

Transaction Summary

=============================================================================

Install 2 Package(s)

Update 0 Package(s)

Remove 0 Package(s)

Total download size: 3.8 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): xine-0.99.5-1.lvn7 100% |=========================| 1.6 MB 00:02
(2/2): xine-lib-1.1.10.1- 100% |=========================| 2.3 MB 00:02

Running Transaction Test

Finished Transaction Test
Transaction Test Succeeded

Running Transaction

Installing:xine-lib ######################### [1/2]

Installing: xine ######################### [2/2]
Installed: xine.x86_64 0:0.99.5-1.lvn7
Dependency Installed: xine-lib.x86_64 0:1.1.10.1-1.fc7

Complete!


Testing the xine install with "xine-check", I got this error:
[root@ogre ~]# xine-check
[ hint ] No xine-config found. Assuming xine from RPMs The xine-config script can be used to determine some file locations used by xine-lib, but you don't have such a script on your system. However, it looks like you installed xine from the RedHat packages. So I'll just guess that you are using the standard locations. If you want me to be sure about those file locations, you can install the 'xine-lib-devel' package (or 'xine-devel', depend on what packages you're using, which contains xine-config. However, this package is not really needed to run xine... press to continue...

Doing what the man says, I installed xine-lib-devel from Fedora Updates:
[root@ogre ~]# yum install xine-lib-devel --disablerepo freshrpms
=============================================================================
Package Arch Version Repository Size
============================================================================= Installing:
xine-lib-devel i386 1.1.10.1-1.fc7 updates 282 k
xine-lib-devel x86_64 1.1.10.1-1.fc7 updates 282 k
Installing for dependencies:

xine-lib i386 1.1.10.1-1.fc7 updates 2.6 M


When I ran xine-check again, I no longer received that error. Good. But when I started up xine to play a test mpeg video, I got the dreaded error:
There is no demuxer plugin available to handle "file:/usr/share/xine/skins/xine-ui_logo.mpv".
Usually this means the file format was not recognized.


Hmm. I listed the packages I installed and found that I didn't have the "xine-lib-extras" packages installed. Specifically, the "xine-lib-extras-nonfree" one from Livna:
[root@ogre ~]# rpm -qa | grep xine
xine-lib-devel-1.1.10.1-1.fc7
xine-0.99.5-1.lvn7
xine-lib-1.1.10.1-1.fc7
xine-lib-devel-1.1.10.1-1.fc7
xine-lib-arts-1.1.10.1-1.fc7

xine-lib-1.1.10.1-1.fc7


I then installed "xine-lib-extras-nonfree" from Livna:
=============================================================================
Package Arch Version Repository Size
============================================================================= Installing:
xine-lib-extras-nonfree x86_64 1.1.10.1-1.lvn7 livna 558 k


Transaction Summary
=============================================================================
Install 1 Package(s) Update 0 Package(s) Remove 0 Package(s)


Happily, my mpeg video played! Also, an x264 video played. Great!
So it looks like the Livna "nonfree" package is responsible for this joy. Thanks, Livna!

The lesson here folks is that you have to watch your libraries. And stay away from FreshRPMs, if at all possible.

CM

Wednesday, February 20, 2008

x264 troubles..ends well

Anyone who reads my blog knows that although I am a loyal Penguin, I'm all about getting the work done expeditiously and distributing my videos to the widest array of formats possible. One of those formats is Apple's Quicktime. And for me, a rendered Quicktime usually ends up as an MPEG4 video in iTunes. With Apple announcing that the new Apple TV 2.0 displays web content as well as iTunes podcasts, higher definition content on iTunes is poised for much growth.

Therefore, it is in that light that I have tasked myself to encode and share some of my band videos to iTunes in glorious (or in the case of my band, un-glorious) DVD resolution. And while I'm at it, I should use tasty H.264 compression for maximum quality at a minimum file size. But of course, this seemingly simple task was much easier said than done.

For me, the rub is that encoding to x264 in Cinelerra is broken. I was getting this error when encoding to H.264:
x264 [error]: no ratecontrol method specified

I had seen this error a few weeks back and emailed the Cinelerra CVS board, but no one had a clue. But tonight, I was going to figure out what the hell was going on. So my first stop was to try encoding to h264 with my old mainstay, ffmpeg. Alas, my friend through thick and thin segfaulted:
[root@ogre 20080206]# ffmpeg -i StormPigs20080206.mpg -an -pass 1 -vcodec h264 -b 1500 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -me epzs -subq 1 -trellis 0 -refs 1 -bf 3 -b_strategy 1 -coder 1 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 1500 -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 output.mp4
FFmpeg version SVN-r8876,
Copyright (c) 2000-2007 Fabrice Bellard, et al.
configuration: --prefix=/usr --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --extra-cflags=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic --enable-libmp3lame --enable-libogg --enable-libtheora --enable-libvorbis --enable-libfaad --enable-libfaac --enable-libgsm --enable-xvid --enable-x264 --enable-liba52 --enable-liba52bin --enable-libdts --enable-pp --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-opts --disable-strip
libavutil version: 49.4.0
libavcodec version: 51.40.4
libavformat version: 51.12.1
built on May 3 2007 12:41:19, gcc: 4.1.2 20070424 (Red Hat 4.1.2-11)
Input #0, mpeg, from 'StormPigs20080206.mpg':
Duration: 01:50:37.0, start: 0.500000, bitrate: 4677 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x480, 9000 kb/s, 29.97 fps(r)
Stream #0.1[0x80]: Audio: ac3, 48000 Hz, stereo, 448 kb/s
Output #0, mp4, to 'output.mp4':
Stream #0.0: Video: h264, yuv420p, 720x480, q=10-51, pass 1, 1 kb/s, 29.97 fps(c)
Stream mapping:
Stream #0.0 -> #0.0
Segmentation fault


FFmpeg had crapped out, so I gave avidemux2 a shot. When I tried to encode using either command line x264 or x264 encoding through avidemux2, I would get this error:
x264 [error]: width or height not divisible by 2 (480x1)

Update 2009/02/12
Here's a more recent entry regarding proper divisors for x264 compression:
http://crazedmuleproductions.blogspot.com/2009/01/high-quality-h264-output.html
*** end update ***

Well..the video is 720x480. Certainly those two numbers are divisible by two, so what gives with the logic of that error?

After Googling and trying various tweaks for about an hour, it occurred to me that there seemed to be no rhyme or reason to the error I was seeing. With that thought in mind, I decided to remove the x264 package entirely. I had installed the package from freshrpms:

[root@ogre 20080206]# yum remove x264*
Loading "installonlyn" plugin

Setting up
Remove Process

Resolving Dependencies
-->
Running transaction check

---> Package x264.x86_64 0:0.0.0-0.3.20070529.fc7 set to be erased

---> Package x264-devel.x86_64 0:0.0.0-0.3.20070529.fc7 set to be erased


Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
============================================================================= Removing:
x264 x86_64 0.0.0-0.3.20070529.fc7 installed 1.0 M

x264-devel x86_64 0.0.0-0.3.20070529.fc7 installed 712 k


Hmmm. Looking at the version number, it seemed like the x264 from FreshRPMs was a VERY early version number. Let me see if another repository has a different version. Luckily, Livna had some love waiting for me:
[root@ogre 20080206]# yum install x264* --disablerepo=freshrpms
Loading "installonlyn" plugin

Setting up Install Process

Parsing package install arguments

Resolving Dependencies
-->
Running transaction check

---> Package x264.x86_64 0:0-0.8.20061028.lvn7 set to be updated
---> Package x264-devel.x86_64 0:0-0.8.20061028.lvn7 set to be updated

Dependencies Resolved =============================================================================
Package Arch Version Repository Size
============================================================================= Installing:
x264 x86_64 0-0.8.20061028.lvn7 livna 227 k

x264-devel x86_64 0-0.8.20061028.lvn7 livna 15 k


Now that version looks a little more recent, yes? With the new Livna repository x264 installed, I tried my render using the shortest path possible: avidemux2. Lo and behold, x264 no longer complained about my height and width not being divisible by 2! Better yet, I was able to render a complete file using avidemux2's two pass defaults without any errors! Some folks might appreciate seeing the verbose output:
**saving:**
Output format:7
AVI family
Enc X264, using /mnt/videos/20070912/StormPigs20070912.mp4.stat as logfile

X264 Encoder ready , w: 720 h:480 mode:3X264 pass 1
x264 codec using /mnt/videos/20070912/StormPigs20070912.mp4.stat as statfile
Opening X264 for 720 x 480
vui.i_sar_width = 1
vui.i_sar_height = 1
rc.f_qcompress = 0.60
analyse.i_direct_mv_pred = 1
rc.i_qp_min = 10
rc.i_qp_max = 51
rc.i_qp_step = 4
i_frame_reference = 1
i_scenecut_threshold = 40
i_keyint_min = 25
i_keyint_max = 250
i_bframe = 2
i_bframe_bias = 0
b_bframe_pyramid = 0
analyse. b_bidir_me = 0
b_bframe_adaptive = 1
analyse.b_weighted_bipred = 0
b_cabac = 1
analyse.i_trellis = 0
analyse.i_subpel_refine = 2
analyse.b_chroma_me = 1
b_deblocking_filter = 1
i_deblocking_filter_alphac0 = 0
i_deblocking_filter_beta = 0
analyse.i_me_method = 0
analyse.i_me_range = 16
analyse.b_transform_8x8 = 0
analyse.b_mixed_references = 0
analyse.i_noise_reduction = 0
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities MMX MMXEXT SSE SSE2
X264 init ok (atom mode : 1)
X264 using 4 threads
Nb nal :3
?? type :6 in nal 0
X264 :Unknown image type:0
X264 :Unknown image type:0

Starting pass 2 (720x480)
[x264] Size 700, average bitrate 1007301 kb/s
x264 [info]: slice I:703 Avg QP: 0.00 size:153296 PSNR Mean Y:70.14 U:71.46 V:71.57 Avg:70.54 Global:67.35
x264 [info]: slice P:124246 Avg QP: 2.00 size: 98655 PSNR Mean Y:59.56 U:60.40 V:60.59 Avg:59.82 Global:57.88
x264 [info]: slice B:49758 Avg QP: 4.00 size: 59273 PSNR Mean Y:66.82 U:67.47 V:67.73 Avg:67.04 Global:57.02
x264 [info]: mb I I16..4: 19.0% 0.0% 81.0%
x264 [info]: mb P I16..4: 9.0% 0.0% 0.0% P16..4: 85.4% 0.0% 0.0% 0.0% 0.0% skip: 5.6%
x264 [info]: mb B I16..4: 4.3% 0.0% 0.0% B16..8: 39.5% 0.0% 0.0% direct:30.0% skip:26.3%
x264 [info]: SSIM Mean Y:0.9992809
x264 [info]: PSNR Mean Y:61.673 U:62.456 V:62.668 Avg:61.920 Global:57.635 kb/s:21017.02

X264 dual size: 700 MB
X264 pass 2, using bitrate of 1007
x264 codec using /mnt/videos/20070912/StormPigs20070912.mp4.stat as statfile
Opening X264 for 720 x 480
vui.i_sar_width = 1
vui.i_sar_height = 1
rc.f_qcompress = 0.60
analyse.i_direct_mv_pred = 1
rc.i_qp_min = 10
rc.i_qp_max = 51
rc.i_qp_step = 4
i_frame_reference = 1
i_scenecut_threshold = 40
i_keyint_min = 25
i_keyint_max = 250
i_bframe = 2
i_bframe_bias = 0
b_bframe_pyramid = 0
analyse. b_bidir_me = 0
b_bframe_adaptive = 1
analyse.b_weighted_bipred = 1
b_cabac = 1
analyse.i_trellis = 2
analyse.i_subpel_refine = 5
analyse.b_chroma_me = 1
b_deblocking_filter = 1
i_deblocking_filter_alphac0 = 0
i_deblocking_filter_beta = 0
analyse.i_me_method = 1
analyse.i_me_range = 16
analyse.b_transform_8x8 = 1
analyse.b_mixed_references = 0
analyse.i_noise_reduction = 0
_8x8P is on
_8x8B is on
_8x8I is on
_4x4I is on
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities MMX MMXEXT SSE SSE2
X264 init ok (atom mode : 1)
X264 using 4 threads
Nb nal :3
?? type :6 in nal 0
x264 has 39 extra bytes
We have extradata for video in copy mode (39)
X264 :Unknown image type:0
X264 :Unknown image type:0
[Bridge] Going to time 0

Syncing on 8192
Sync found at offset 0
A52 sync found at 0 + 0
[Bridge] Starting with time 0, shift 0
[Bridge] Ending with time 0, sample 0
[Bridge] Going to time 0

Syncing on 8192
Sync found at offset 0
A52 sync found at 0 + 0
[Bridge] Going to time 0

Syncing on 8192
Sync found at offset 0
A52 sync found at 0 + 0
[FAAC] : Sample input:2048, max byte output1536
[Faac] Initialized :
[Faac]Version : 1.25
[Faac]Bitrate : 192000
[Faac]Mpeg2 (1)/4(0) : 0
[Faac]Use lfe ) : 0
[Faac]Sample output : 1024
[Faac]Bitrate : 384000
[LavFormat] Bitrate 384
Output #0, mp4, to '/mnt/videos/20070912/StormPigs20070912.mp4':
Stream #0.0, 29.97 fps(c): Video: 0x0000, 720x480, q=2-31, 2000 kb/s
Stream #0.1: Audio: 0x0000, 48000 Hz, stereo, 384 kb/s
lavformat mpeg muxer initialized
PacketQueue MP4 audioQ created
[AudioQueueThread] Starting
DMX_audio Going out of bound (position : 326445000 asked 5000 end326446848)
DMX_audio Going out of bound (position : 326446848 asked 5000 end326446848)
**PKTZ:READ ERROR
**END OF AUDIO STREAM
EditorPacket:Read failed; retrying (were at seg 0sample 279810048
/ 279814208)
EditorPacket : End of *last* stream
read failed, end of stream ?
EditorPacket:Read failed; retrying (were at seg 0sample 279810048
/ 279814208)
EditorPacket : End of *last* stream
read failed, end of stream ?
[Bridge] End of stream
EditorPacket:Read failed; retrying (were at seg 0sample 279810048
/ 279814208)
EditorPacket : End of *last* stream
read failed, end of stream ?
[Bridge] End of stream
EditorPacket:Read failed; retrying (were at seg 0sample 279810048
/ 279814208)
EditorPacket : End of *last* stream
read failed, end of stream ?
[Bridge] End of stream
[bridge] No data in 0 max 24448 out 0
[AudioQueueThread] Exiting
[AudioThread] Target 4294901760, got 279810048, 0.065149 %
LavMuxer:Audio DTS is too low 5829354666 / 5829362696!
x264 [error]: 2nd pass has more frames than 1st pass (174709)
x264 [error]: continuing anyway, at constant QP=22
x264 [error]: disabling adaptive B-frames
LavMuxer:Audio DTS is too low 5829354666 / 5829396062!
x264 [info]: slice I:703 Avg QP:18.35 size: 28210 PSNR Mean Y:52.78 U:53.43 V:54.33 Avg:53.09 Global:47.62
x264 [info]: slice P:124248 Avg QP:21.42 size: 5232 PSNR Mean Y:47.14 U:47.26 V:48.82 Avg:47.39 Global:44.70
x264 [info]: slice B:49758 Avg QP:21.06 size: 1286 PSNR Mean Y:58.14 U:58.09 V:59.69 Avg:58.30 Global:45.20
x264 [info]: mb I I16..4: 17.5% 42.4% 40.1%
x264 [info]: mb P I16..4: 2.4% 9.0% 0.2% P16..4: 39.2% 12.0% 2.3% 0.0% 0.0% skip:34.8%
x264 [info]: mb B I16..4: 0.1% 1.2% 0.0% B16..8: 7.7% 0.4% 0.8% direct:14.5% skip:75.3%
x264 [info]: 8x8 transform intra:76.4% inter:65.0%
x264 [info]: SSIM Mean Y:0.9828109
x264 [info]: PSNR Mean Y:50.297 U:50.371 V:51.938 Avg:50.519 Global:44.843 kb/s:1007.06
[Bridge] Destroying bridge
[FAAC] Deleting faac
yv12close called
ba010000 -> ba010000


And best yet, the rendered x264 file loads into iTunes! Hooray!

Of course, I haven't tried actually bringing it to an iPod, but that will be the next thing to do. I'll let you know.
cheers,
da mule

Reference
Here are Apple's specifications for making a podcast:
http://www.apple.com/itunes/store/podcaststechspecs.html

Friday, February 08, 2008

Why Cinelerra?

I received a question from a person unfamiliar with Cinelerra and I thought that my response should be shared. The person has a friend who runs Cinelerra in Ubuntu and he wanted a more experienced users' perspective on how Cinelerra compares to the more established, commercial packages like Premiere or Vegas. Here is how I responded to him.

Cinelerra is very powerful software if you can overcome some of its idiosyncracies. Idiosyncracies like:
1) it is difficult to install for most people
2) it sometimes crashes. There are more crashes on 32-bit systems. However, the consequences of a crash aren't bad, as you can simply restart Cinelerra, load the automatically generated backup file and pick up where you left off.
3) rendering to final formats is challenging

Cinelerra is buggy in a consistent way. In other words, if you have the time and energy to figure out what works and what doesn't work, then you can base a workflow around that. But that effort is a huge time sink.

It doesn't get any better when you upgrade your system, because what once
worked in a previous distro will break in your new distro. So, you spend
oodles of time figuring out how to fix it.

It takes a certain kind of person who relishes the constant challenges of Cinelerra and Linux to power through these difficulties. Cinelerra is not everyone's cup of tea for sure, but you can get usable content out of Cinelerra if you know what works and what doesn't. Otherwise, save your valuable time and effort, buy a dual quad core Mac or PC with Final Cut Pro or Avid or Premiere or Vegas and be happy that everything works out of the box. Which isn't always the case even with those softwares.

Because Cinelerra is free software, it will never be as well supported as those commercial products. That being said, I have Cinelerra installed on Fedora 10 x86, 64-bit and the only time it has crashed is when I've done something stupid like try to write to a filesystem that is full or trigger a known bug, like using the broken DV import-record function.

I have spent the last two years learning the software and documenting specific processes using Cinelerra. You might glean some useful information by subscribing to my blog's RSS feed, because it documents the challenges I face in getting the software to work properly:
http://crazedmuleproductions.blogspot.com/

I would suggest that a 64-bit machine is most stable for Cinelerra, moreso than a 32-bit machine. That is due to the fact that the 64-bit build will take full advantage of the memory resources on your computer and video editing is very taxing on a computers memory.

From the conversations on http://cvs.cinelerra.org/, the largest installed base of users seems to be on Ubuntu, Fedora and Debian distros. I would suggest starting with one of those distros, as many people on the CVS will be able to help you if you encounter problems.

There are two versions of Cinelerra. The original version you can get from http://www.heroinewarrior.com/, but the author does not support the software. The most actively supported version of the software is the Community Version (CV) and can be found on http://cvs.cinelerra.org/. That community of which I am part, has done significant work to fix bugs, accumulate and pass on knowledge to people interested in this great, free software and video editing in general.

The RPMFusion repository is the one main Fedora repository has Cinelerra RPMs for most recent Fedora versions:
rpmfusion.org
Information on installing Cinelerra for all other distributions can be found here:
http://cvs.cinelerra.org/getting_cinelerra.php

Here is a list of related articles regarding first-time installations on Fedora:
Getting Started with Cinelerra
Building Cinelerra on 64-bit Fedora 9 from Source
Beginner's Guide to Exporting Video from Cinelerra
Exports and Linux Player Compatibility Chart from the article Render Compatibility on Fedora 10, x86-64
Cinelerra for Grandma

Finally, if you don't want to fuss with your own install, you may download one of two VMware virtual machines that I have created specifically for video editing with Cinelerra and all the tools you need to get started:
Fedora Core 6, 32-bit VMware virtual machine ~1GB
Fedora 10, x86-64 VMware virtual machine ~3GB

The Mule