Islet Mpeg-1 sequencer V1.1c author: Luis Carlos Yamamoto (c) 1998 This is FREE to use and modify for your needs and system. If you modify and distribute, please, do that jointly with my original copy and send me your modified (and free :)) copy. I would like to learn about tcl/tk. Warning, beware: I made this program for my purposes. I don't guarantee this works to you even this does what it seems to do but I hope it does ;P I suggest you observe: Islet creates links using ln -s and files in TMP directory. That directory is only to make sequenced and temporary files. Before Islet writes to TMP, Islet removes all ppm files of TMP. Re-scaled frames will be there too. So, CHOOSE A SUITABLE TMP DIRECTORY TO ISLET. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY Sorry, I think if your system does not support link (ln -s), you can't use this as it is. I think to use under DOS/WINXXXx, Islet must be changed, maybe copying files instead. I used under Linux/intel and I don't know about others. What is Islet? Islet is a very simple sequencer, i.e., one selects files and put them in a sequence and Islet uses those selected files to produce MPEG-1 video. I heard about non linear video edition but I never used any of them. I made islet just to get frames in a right way to use mpeg2encode. Islet does not allow to edit frames, just previously defined effects can be applied on existing frames. There are fade in/out and closing window effects in islet. You can view a draft of movies and frames. Velocity depends on you PC/frame size/RAM,etc. Islet has a static delay on each frame, the command is -after 500- in case you would like change it How do I install? It is a script and you must configure it by hand. Islet tests your configuration (files/directory needed) and shows message if there is misconfiguration. You will need: -tcl/tk, I used 8.0.3. Your version must support font -netpbm, Islet uses ppmbrighten, pnmpaste and pnmcut -mpeg2vidcodec (mpeg2encode) edit islet script and configure your default configuration for mpeg2encode, rm, wish, etc. Mpeg config and Mpeg file entry fields are just names to be used with mpeg2encode and they will be created. Islet will over write with no warning if they exist. How do I use ? Islet uses current directory to get *.ppm but you can change entry fields and click on -change parameters button-, each time you change parameters will need click on button change parameters. Return/Enter key pressed in each entry field is the same as -change parameters button-. Load list button will search *.ppm files on directory indicated by entry "dir:" and will appear in left box list. One can select one or more files and click copy. Files will appear on right hand side box list. The sequence is that of right hand side list box. If one selected wrong files, del button can be used to delete files on right box list only. If you made some fade in/out or closing window effect, delete button will erase effects list and you need reenter effects again. If you have some idea how to void this problem write to me about. I could subtract the total number of deleted files from fade list directly but I will think other way. Multiple selection on lists is allowed, to fade in or out and closing window effects you will need multiple selection. The number of files indicates the step used to fade in or out or closing window (effect max_intensity/nrfiles_selected is the step). No collision of effects is corrected. The sequence of effects is: rescale, fade in/out and closing window. If one selects on right hand side box list and click on fade in, fade out or closing window effects, it will save begin and end for fade, same to closing window. If you made several fade in or fade out, it will be done, i.e., it is allowed several fade in/out and closing window but collision is not corrected. Double click of left hand side mouse button over right hand side list will show image on a new window but you MUST to get sequence BEFORE. Double click of middle mouse button will show image but of the original path (no fade in/out). Double click on left hand side list will show original file. If you wish use right hand side list, select using left hand side mouse button and double-click to see original image. That is because double click of lhs mouse button uses $TMP files and they need to be created with -sequence button- or you will se any old image. Click on image and it will be closed. Movie draft can be stopped clicking on image. Note: you need to know width and height of your image, put them in entry fields and click -change par button-. If you clicked on -sequence button- and you double-clicked lhs mouse button on image filename, width and height will be updated with that selected image size. Buttons are in a suitable sequence to use, i.e. downward. I hope ;P what is new after 1.0: -sequence is displayed under double click of right hand side mouse button. -3 new separated window to buttons and message. -new button: -remove files on TMP -play TMP: AFTER you make sequence, you can see a draft using -play TMP- button. or you use double click of right hand side mouse button to see original location files. -select all left: selects whole left hand side list -select all right: selects whole right hand side list -: save multi selection mark of right hand side list -Ins loc: using marks to insert files on a position of right hand side list -close up/down/left/right: effects, a black cover will appear. -verify size: creates a list of different sized files -unverify size: delete list of different sized files -show list: shows list of different sized files -mark rescale: indicates list to be resized -unmark rescale: does not resize different sized files uses as it is (hint: adjust width x height clicking on left hand size filename before verify size button. Default size is considered if you didn't change width and height by hand and this problem could return your whole list as different size!) -Image window remains at rest now (window image was walking on screen) -left hand side list was growing. Now it is cleared before new load. -I changed the appearance and layout. -Clicking on movie draft will stop. the scheme used to play is a recursive call. -Tests for configuration and warning about. -Confirmation window in some tasks. -Help is a little bit better formatted than v1.0 -I used ispell and I hope there are no misspelled words. -Message center, run mouse over buttons, etc and messages will appear. -focus in Help. (focus allows to scroll pressing page up/pagedown on keyboard) -mpeg2encode send output to new window. Messages are not on line but are collected and displayed after finished. If one knows how to get it on line, please, send me a example. -global format for numbered files as form "%.4d", if one uses more than 10000 frames, can change it in one line. 10000 frames/23.976 frames per second = 6.95 min of video, 10000 frames*240kbytes per frame (ppm 320x256 )= 2400000kbytes= 2344M=2.3G, assuming 1024bytes=1kb,1024kb=1M,1024M=1G for jpeg 320x256,100%,from blender:46k (*)mpeg2encode uses yuv/ppm, frames time ppm jpeg(*) 10000 7min 2.3G 449kb 20000 14min 4.6G 898kb 40000 28min 9.2G 1.8G 80000 56min 18.4G 3.6G 160000 102min 36.8G 7.2G -total number of files in sequence appears in the main window. This uses global format and supports up to 6 characters (label width). -Mark >- button was adopting the exact position to insert new files. Now it considers the next (+1). -mpeg2encode was initiating from 0001.ppm. Not it takes from 0000.ppm -Draft movie takes all frames ppm in TMP but some of them could not be showed, as blackmod.ppm and rescaled files. I assumed all files containing underscore will not be showed during draft movie. (you must care if you file has already underscore ("_"), it will not be showed!. Other way would be to create a new temporary directory to those frames but is it useful?) -Verify size options was using a incomplete file name, i.e. no directory was stored. Now I store just the position number from .2.3.list1, so .2.3.list9 stores the number and it has a complete path to file. -Size of image was not updated and it was doing a wrong size for fade/closing effect. when one uses several frames and repeats them several times, islet used to fade/close on the first found. now it works on the right position, I hope -test if sequence button was used in create-mpeg -test if it was verified frame size in create-mpeg. if it was not, verify frame size. Example: Install islet, edit and configure islet. run islet in islet home directory: ./islet put your mouse on Dir: entry field and include ppm as a subdir (there are ppm files) and / push -load list- button ppm files will appear in left hand side list box double click on a file so you can see the frame (and get the size) click on -< Select- button, all files will be selected push -copy- button, all files will appear in right hand side list box do a multi selection on right hand side list box click on fade or close button. click on verify size.(window button 2) click on -sequence- button click on -play TMP- button so you can see a draft movie push -create mpeg- to make them MPEG-1 movie. push -quit- button to leave islet if all steps are correct, you just created a mpeg file. if you have xanim, mpeg_play or mtv, you can see: xanim _islet_.mpg Note: xanim does not play mpeg with sound when you used mplex to join sound and video. If you use 24 bits in XFree, mpeg_play needs "-dither color" to get right colors. I use mpeg_play to get approximated time length. Comments: Islet seems to be front end to mpeg2encode and pnm tools. It allows to select files to be encoded using a simple list box to select them. Little help to put different sized files in a fitted size and effects of fade and closing window. Islet does not change original frames. If it is necessary, new frames are created on TMP and Islet considers original frames only to read. if you wish to change frame orders in a MPEG-1 video, use: mpeg2decode -o3 %.4d -b file.mpg and this will explode numbered frames in ppm format and you can do a new sequence using islet. If you have a animated gif, you can use: gifsicle -U -e file.gif a well known program to get animated gifs. This produces a file.gif.#, you must change to ppm if you want them to islet. (-U is needed because gif can be optimized an it can be exploded in a bad frame size). TODO: -possible other suggestions? (number 1: BigMac, Coke and fried potatos,hehe) -sound ?(if you use mplex1.1 you know what I say!). I tried use canvas to handle RIFF wav. It can work: read/write, join, effects of volume but my script was so slow that I need learn other way to handle handle sound inside tcl/tk to continue this. I didn't observe the running size of -wish- program! It could be RAM eater too. -move filename (change position in rhs list box) -resize frames. As Islet makes a copy to new file this could not be a good thing due to lots disk space. Actually, netpbm is a great graphic package :) but disk space is always a problem. -blt has enhanced image handler and it supports re-scaling and other formats with no external programs. Could it be a good change? -closing window is a big problem because if one does not select a suitable number of frames,i.e, integer multiple of the size of the frame, the closing window will not cover exactly the frame. I use one more frame to get it completed and it has not good effect. An option to get different colors to that cover frame is wanted. PPMCHANGE can do this using black.ppm but a color front end is needed to void wrong colors input! -change dir: could be changed to a new interface but it will change the appearence of islet. files: islet, script README, this readme black.ppm, little black image to be rescaled if necessary islet.gif icon for islet From where comes Islet name? My sick head thought in a Isle, a very quite and beautifil Isle and it should be small because a big Isle would not be quite. If you don't like this, try: (I)ntegrated (S)equencer (L)ist (E)ditor under (T)cl/tk It could not have sense but it fits good, hehe I apologize for my English, I hope you understand my English text (my first language is not English and you may correct me if you wish) I hope it works to you as it does to me. That is all folks 30/11/1998 (DD/MM/YYYY)