diff options
| author | Richard W.M. Jones <rich@annexia.org> | 2010-07-14 20:29:34 +0100 |
|---|---|---|
| committer | Richard W.M. Jones <rich@annexia.org> | 2010-07-15 13:05:20 +0100 |
| commit | 6371d3f3f5adffedc88378e6ba3db7ec0f807b60 (patch) | |
| tree | d9120989053a50ec9fc2d9f5f9e95da0b56cc432 | |
| parent | 1bb500067ee276ae6d59a4f7a79a5705865a928d (diff) | |
| download | virt-tools-6371d3f3f5adffedc88378e6ba3db7ec0f807b60.tar.gz virt-tools-6371d3f3f5adffedc88378e6ba3db7ec0f807b60.tar.xz virt-tools-6371d3f3f5adffedc88378e6ba3db7ec0f807b60.zip | |
Video tutorial: examining a disk image with guestfish.
15 files changed, 385 insertions, 20 deletions
diff --git a/video-tutorials/.gitignore b/video-tutorials/.gitignore index 2621fab..30ec3b7 100644 --- a/video-tutorials/.gitignore +++ b/video-tutorials/.gitignore @@ -1 +1,2 @@ +.DS_Store *.blend1
\ No newline at end of file diff --git a/video-tutorials/README b/video-tutorials/README index 46294c8..c92b555 100644 --- a/video-tutorials/README +++ b/video-tutorials/README @@ -26,11 +26,12 @@ fit everything comfortably into 50 seconds. A little bit of time is spent in fades too, so in reality it will be a few seconds less than this. -What can you say in 50 seconds? Not very much. You'll have to stick -to one very simple point. You should practice reading through your -script and timing it. [On a side note: Who owns a stopwatch, or even -a watch these days? Certainly not me. And GNOME doesn't seem to come -with a stopwatch applet either. I use my phone to time myself.] +What can you say in 50 seconds? *Not very much*. About 100 - 120 +words *maximum*. You'll have to stick to one very simple point. You +should practice reading through your script and timing it. [On a side +note: Who owns a stopwatch, or even a watch these days? Certainly not +me. And GNOME doesn't seem to come with a stopwatch applet either. I +use my phone to time myself.] Along with your script, note down what you'd like to appear on the screen. Timing is less important here because you are allowed to (and @@ -74,7 +75,8 @@ through the demonstration. Three important points to note: it because the sound quality will be crap and no one wants to hear you hammering away on the keyboard. This means it doesn't matter what you say while you're recording the demonstration. Don't try - to read the script. + to read the script. [Update: Recent versions of recordmydesktop + have a checkbox which stops it from recording audio] * You can going to shorten and edit this heavily. You need enough video so that *after* editing, the demonstration will run to @@ -90,9 +92,31 @@ through the demonstration. Three important points to note: Watch the recording back over with the sound turned off, and if something's not right, record it all again. -(7) Edit the desktop recording. Use Blender VSE ("final.blend") and -edit it down to 50 seconds. Note in VSE you will need to remove the -sound from the recording. +(7) Edit the desktop recording down to 50 seconds. + +Recordmydesktop generates OGG video by default. Convert this to +individual frames (PNG files): + + mplayer video.ogv -vo png:z=9 + +You can "edit" just by deleting the frames you don't want before you +load the rest into Blender. Use any slideshow tool for this +(eg. GNOME "eog"). Do some simple arithmetic so that the final video +will be around 50 seconds. eg. If the original recording was 120 +seconds long and the mplayer command creates 300 frames, then you will +need to remove approximately 160 frames in order for the final video +to be 50 seconds long and to run in real time. (You might want to +remove more or less frames in order to change the speed). Another +trick is to duplicate frames, where you want a pause in the video +while you say something on the voiceover. + +Import the final directory of PNG files into VSE ("final.blend"). +This isn't mentioned anywhere in the Blender documentation, but you +have to add a Speed Control Effect over the top of the Image Sequence +in order to get Blender to spread the frames out over the full 50 +second length (otherwise Blender will add them all at 25 fps and +you'll get a very quick demo followed by 40 seconds of displaying a +single frame). Once it is edited down, render this. Don't forget to select "Do sequence" before rendering otherwise Blender will try to render from @@ -102,24 +126,31 @@ the 3D view instead of the sequence. and there's no background noise. We use Audacity for this, but there are plenty of alternatives. -Now record your sweet voice as you play the rendered video back. -Again you might have to do this several times to get it right. +Now record your sweet voice reading the script as you play the +rendered video back. Again you might have to do this several times to +get it right. (9) Back in Blender VSE ("final.blend") add the sound recording as an -extra track, then render the final video. +extra track, then render the final video with voiceover. + +Note that Blender will only render a video with sound if you enable +output format FFMPEG and on the audio tab click Multiplex Audio. -(10) We like to render the video in several formats: +(10) We like to render the final video in several formats: - * MJPEG (Blender calls it "AVI Jpeg"). The files are huge, but - they can be played everywhere. + * H.264 video with MP2 audio. This is massively proprietary but + most people should be able to play it. In addition, the + compression ratio is reasonable. A 60 second video with sound + should compress to around 10-12 MB. - * Ogg Theora (OGV). You can take the MJPEG and convert it to .ogv - using "gst-launch". However doing this is "doubly lossy". I - don't know if we can generate OGV directly or from the EXR files. + * Ogg Theora (OGV). (11) Upload it to the website. Send a message to the virt-tools -mailing list so we can coordinate the upload. You can also upload -videos to external services like YouTube. +mailing list so we can coordinate the upload. In addition you can +upload videos to external services like YouTube. + +(12) Tell the world about it. The more people that see these videos, +the better. Thanks for your participation in the virt tools project! diff --git a/video-tutorials/guestfish-disk-image/.gitignore b/video-tutorials/guestfish-disk-image/.gitignore new file mode 100644 index 0000000..8205fd5 --- /dev/null +++ b/video-tutorials/guestfish-disk-image/.gitignore @@ -0,0 +1,2 @@ +final.avi +final.dvd
\ No newline at end of file diff --git a/video-tutorials/guestfish-disk-image/cc-by-sa.png b/video-tutorials/guestfish-disk-image/cc-by-sa.png Binary files differnew file mode 100644 index 0000000..f0a944e --- /dev/null +++ b/video-tutorials/guestfish-disk-image/cc-by-sa.png diff --git a/video-tutorials/guestfish-disk-image/demo/.gitignore b/video-tutorials/guestfish-disk-image/demo/.gitignore new file mode 100644 index 0000000..e33609d --- /dev/null +++ b/video-tutorials/guestfish-disk-image/demo/.gitignore @@ -0,0 +1 @@ +*.png diff --git a/video-tutorials/guestfish-disk-image/demo/files.txt b/video-tutorials/guestfish-disk-image/demo/files.txt new file mode 100644 index 0000000..82030f2 --- /dev/null +++ b/video-tutorials/guestfish-disk-image/demo/files.txt @@ -0,0 +1,281 @@ +00000031.png +00000032.png +00000033.png +00000034.png +00000035.png +00000036.png +00000037.png +00000038.png +00000039.png +00000040.png +00000041.png +00000042.png +00000043.png +00000044.png +00000045.png +00000046.png +00000047.png +00000048.png +00000049.png +00000050.png +00000051.png +00000052.png +00000053.png +00000054.png +00000055.png +00000056.png +00000057.png +00000058.png +00000059.png +00000060.png +00000061.png +00000062.png +00000063.png +00000064.png +00000065.png +00000066.png +00000067.png +00000068.png +00000069.png +00000070.png +00000071.png +00000072.png +00000073.png +00000074.png +00000075.png +00000076.png +00000077.png +00000078.png +00000079.png +00000080.png +00000081.png +00000082.png +00000083.png +00000084.png +00000085.png +00000086.png +00000093.png +00000094.png +00000095.png +00000096.png +00000097.png +00000098.png +00000099.png +00000100.png +00000101.png +00000102.png +00000103.png +00000103a.png +00000103b.png +00000103c.png +00000103d.png +00000103e.png +00000103f.png +00000103g.png +00000104.png +00000105.png +00000106.png +00000107.png +00000108.png +00000109.png +00000110.png +00000111.png +00000112.png +00000113.png +00000114.png +00000115.png +00000116.png +00000117.png +00000118.png +00000119.png +00000120.png +00000121.png +00000122.png +00000123.png +00000124.png +00000125.png +00000126.png +00000127.png +00000128.png +00000129.png +00000130.png +00000131.png +00000132.png +00000133.png +00000134.png +00000135.png +00000136.png +00000137.png +00000138.png +00000139.png +00000140.png +00000141.png +00000142.png +00000143.png +00000144.png +00000145.png +00000146.png +00000147.png +00000147a.png +00000147b.png +00000147c.png +00000147d.png +00000147e.png +00000147f.png +00000147g.png +00000148.png +00000149.png +00000150.png +00000151.png +00000152.png +00000153.png +00000154.png +00000155.png +00000156.png +00000157.png +00000158.png +00000159.png +00000160.png +00000161.png +00000162.png +00000163.png +00000164.png +00000165.png +00000166.png +00000167.png +00000168.png +00000169.png +00000170.png +00000171.png +00000172.png +00000173.png +00000174.png +00000175.png +00000176.png +00000177.png +00000178.png +00000179.png +00000180.png +00000181.png +00000182.png +00000183.png +00000184.png +00000185.png +00000186.png +00000187.png +00000188.png +00000189.png +00000190.png +00000191.png +00000192.png +00000193.png +00000194.png +00000195.png +00000196.png +00000197.png +00000198.png +00000199.png +00000200.png +00000201.png +00000202.png +00000203.png +00000204.png +00000205.png +00000206.png +00000207.png +00000208.png +00000209.png +00000210.png +00000211.png +00000212.png +00000213.png +00000214.png +00000215.png +00000216.png +00000217.png +00000218.png +00000219.png +00000220.png +00000221.png +00000222.png +00000223.png +00000224.png +00000225.png +00000226.png +00000227.png +00000228.png +00000229.png +00000230.png +00000231.png +00000232.png +00000233.png +00000234.png +00000235.png +00000236.png +00000237.png +00000238.png +00000239.png +00000240.png +00000241.png +00000242.png +00000243.png +00000244.png +00000245.png +00000246.png +00000247.png +00000248.png +00000249.png +00000250.png +00000251.png +00000252.png +00000253.png +00000254.png +00000255.png +00000256.png +00000257.png +00000258.png +00000259.png +00000260.png +00000261.png +00000262.png +00000263.png +00000264.png +00000265.png +00000266.png +00000267.png +00000286.png +00000287.png +00000288.png +00000289.png +00000290.png +00000291.png +00000292.png +00000293.png +00000294.png +00000295.png +00000296.png +00000297.png +00000298.png +00000299.png +00000300.png +00000301.png +00000302.png +00000303.png +00000304.png +00000305.png +00000306.png +00000307.png +00000308.png +00000309.png +00000310.png +00000311.png +00000312.png +00000313.png +00000314.png +00000315.png +00000316.png +00000317.png +00000318.png +00000319.png +00000320.png +00000321.png diff --git a/video-tutorials/guestfish-disk-image/endcard.blend b/video-tutorials/guestfish-disk-image/endcard.blend Binary files differnew file mode 100644 index 0000000..c1527c8 --- /dev/null +++ b/video-tutorials/guestfish-disk-image/endcard.blend diff --git a/video-tutorials/guestfish-disk-image/endcard/.gitignore b/video-tutorials/guestfish-disk-image/endcard/.gitignore new file mode 100644 index 0000000..b96d0a4 --- /dev/null +++ b/video-tutorials/guestfish-disk-image/endcard/.gitignore @@ -0,0 +1,2 @@ +*.avi +*.exr
\ No newline at end of file diff --git a/video-tutorials/guestfish-disk-image/final.blend b/video-tutorials/guestfish-disk-image/final.blend Binary files differnew file mode 100644 index 0000000..2462c9b --- /dev/null +++ b/video-tutorials/guestfish-disk-image/final.blend diff --git a/video-tutorials/guestfish-disk-image/final/.gitignore b/video-tutorials/guestfish-disk-image/final/.gitignore new file mode 100644 index 0000000..ae306e4 --- /dev/null +++ b/video-tutorials/guestfish-disk-image/final/.gitignore @@ -0,0 +1,2 @@ +*.avi +*.exr diff --git a/video-tutorials/guestfish-disk-image/guestfish-disk-image.ogv b/video-tutorials/guestfish-disk-image/guestfish-disk-image.ogv Binary files differnew file mode 100644 index 0000000..b82c2c1 --- /dev/null +++ b/video-tutorials/guestfish-disk-image/guestfish-disk-image.ogv diff --git a/video-tutorials/guestfish-disk-image/guestfish-disk-image.wav b/video-tutorials/guestfish-disk-image/guestfish-disk-image.wav Binary files differnew file mode 100644 index 0000000..8427647 --- /dev/null +++ b/video-tutorials/guestfish-disk-image/guestfish-disk-image.wav diff --git a/video-tutorials/guestfish-disk-image/script.txt b/video-tutorials/guestfish-disk-image/script.txt new file mode 100644 index 0000000..998e7a4 --- /dev/null +++ b/video-tutorials/guestfish-disk-image/script.txt @@ -0,0 +1,43 @@ + ls -lh disk.img + +Here I have a four-and-a-half GB disk image file. What's inside it? + + file disk.img + +The "file" command doesn't tell me much. + + guestfish -a disk.img --ro + +But using guestfish we can look right inside this disk image. +The "R O" Read Only option must be used if this is a live +virtual machine. + +[pause before RUN] + + run + + list-partitions + + lvs + +Run the libguestfs back end, then list partitions and logical volumes +found inside this file. + +[pause before MOUNT] + + mount /dev/vg_f12x32/lv_root / + +To look at a filesystem, tell guestfish to mount it. + + ll /usr + + cat /etc/issue.net + +Guestfish can list directories and open files, and +there are dozens of other commands. + + virt-inspector disk.img | more + +If you want to do all of this automatically we have another +tool called virt-inspector. Point this at any disk image and +it will produce a report showing you what's inside it. diff --git a/video-tutorials/guestfish-disk-image/title.blend b/video-tutorials/guestfish-disk-image/title.blend Binary files differnew file mode 100644 index 0000000..89deece --- /dev/null +++ b/video-tutorials/guestfish-disk-image/title.blend diff --git a/video-tutorials/guestfish-disk-image/title/.gitignore b/video-tutorials/guestfish-disk-image/title/.gitignore new file mode 100644 index 0000000..b96d0a4 --- /dev/null +++ b/video-tutorials/guestfish-disk-image/title/.gitignore @@ -0,0 +1,2 @@ +*.avi +*.exr
\ No newline at end of file |
