http://www.murga-linux.com/puppy/viewto ... 345#921345
Some details concerning my other work/programs/opensource_contributions can be found inside threads:
NEW weX,weav,scrox Precord Premote DoMyFile DoMyCommand fokSyfEyeR xhippo-mod flite_hts_dotpet Pfetch WIAKAPPS Pcreole DebianDog_MintPup_DevContributions
NOTE WELL: Please remember to delete your old $HOME/.pavrecord config directory before installing this.
Changes 9.0.5:
# (YMD)2014/08/15:
Improved screencast handling including button for xwininfo and option to show capture area during capture.
Also fixed x11grab framerate entry.
Significantly improved video encoding functionality:
Added video bitrate entry box.
pAVrecord previously only provided constant bit rate video encoding mode but this latest version adds variable bit rate video encoding mode capability in addition to the default cbr mode (uses -qscale vbr option for bitrate < 32).
Some mods to the apps help text.
I suggest trying VideoBitrate value 512 kbps, which is the default if the entry box is left blank. That provides fairly good quality for most encoders.
For highest quality screencasts along with small resultant filesize, I suggest selecting x264 encoder. Even VideoBitrates as low as 128 (in kbps), using scast framerate of 10 fps, seemed to give reasonable results and small filesize.
Note well that for a given video bit rate you will get higher quality encoding if you reduce the frame rate. In other words, for a given video bit rate you can trade frame rate for quality whilst keeping the same recorded video filesize.
If you want variable bit rate video mode instead of the default constant bit rate video mode, enter a value less than 32 into the VariableBitrate box. pAVrecord then automatically uses vbr and the VariableBitrate value is used as the quality setting (using ffmpeg -qscale internally). A medium quality value of 5 works quite well with most codecs. 10 provides highest quality for Theora encoder (different encoders respond differently to qscale values between 1 and 31; with some encoders, quality goes down for larger qscale value, for some it goes up - you need to experiment...).
In default cbr video mode, for higher quality (but double file size), you could enter a VideoBitrate of 1024 kbps instead of 512 kbps, or use whatever value you wish (lowest provided cbr mode is 32 kbps, which gives very low quality of course).
-----
Previous notes, which still apply:
The recent pAVrecord works with either avconv or ffmpeg (though current avconv itself seems to have a bug with jpeg production at low frame rates, so ffmpeg is preferred). pAVrecord has been developed/tested_as_working on Slacko-6 beta, Puppy Precise 5.7.1, DebianDog, and Puppy Akita. Note that for Akita you need to create an empty file called noxvid in /etc/pavrecord; that causes it to use the alternative mpeg4 encoder - the same trick may be needed in some other Puppy distributions. Whether pAVrecord will work in earlier Puppies, or Quirky, Wary, or Racy, depends on the ffmpeg/avconv functionality they have. Read the program provided Help for more details and installation tips.
Note that this new pavrecord depends on either mplayer or cvlc, and ffmpeg or avconv. Complete functionality depends on the codecs provided by the installed ffmpeg or avconv. Neither ffplay nor avplay is absolutely required any more, but without one of these you will not be able to watch a preview of the video as it is being recorded. For ffplay/avplay your system needs xv graphics mode; x11 mode only apparently won't do for them.
This version has many changes and bug-fixes under the hood. In this new pAVrecord (and in latest Precord) it is now possible to alter much of its internal processing functionality via external code modules (I refer to it as 'hijack' facility). EDIT: The following post gives more details, via simple exemplars, on using hijack modules:
http://www.murga-linux.com/puppy/viewto ... 913#656913
If pavrecord ever fails to start, its config file is probably corrupted so simply delete your old $HOME/.pavrecord config directory and pavrecord will automatically rebuild it the next time it is re-started. Its config file is not known to become corrupted in normal use though.
"Some" Puppy versions may need to add ogv as a mime type.
By default, when using Theora for video capture, pavrecord uses -qscale 31 parameter for higher quality. You can overwrite this by entering, for example, -qscale 1, for lowest quality, in the Extra O/P Options entry box.
Further Notes.
1. For technical reasons, such as audio sync adjustment, pAVrecord records the video and audio track in separate files and then multiplexes them into a single video file at the end. This mechanism also makes it easy to dub the original video track with new audio. Use the Audio sync offset entry in the config GUI to correct for out of sync audio (whether it is out of sync with the video or not depends on the speed of your machine and the AV encoders selected).
2. Pausing recording works but isn't too useful because ffmpeg caches lots of video anyway. Another effect of this is that video and audio will become very much out of sync after pausing a recording.
3. When monitoring video recording, depending on your machine amongst other factors, you may experience a delay before the video window appears (it takes ages on my computer with x264 - but it does come eventually...). Also, with Theora, particularly since it is high quality by default, the video and audio may be a bit out of sync and you will need to adjust the value in the Audio sync entry box before recombining the audio and video track. The 0.5 seconds, as provided by default, works perfectly on my slowish computer with mp3 audio plus MPEG-4 video (Xvid) in an avi container.
Setting up pAVrecord Example:
Select Advanced (big) User Interface.
Select Target Directory: /root
Select Record Duration: 0 (for unlimited).
Also set Play Duration to 0.
Enter Audio sync offset (seconds): 0.5
(You will probably need to adjust that since audio delay is system/encoder dependent).
In AUDIO RECORD CONFIGURATION:
Select: mp3 (or ogg_q), cbr, bitrate 32k
In VIDEO RECORD CONFIGURATION:
Select video encoder: MPEG-4/10 (or Theora if ogg_q audio). Note that for screencast recording x264 (or maybe Theora) gives better quality.
Enter:
Frame Rate(fps) video: 15 (10 is probably high enough for a screencast),
vInputFormat: video4linux2 (not used during a screencast),
vDEVICE: /dev/video0 (if that is your video device; not used during a screencast),
vWidth 320, vHEIGHT 240 (not used during a screencast).
Leave ffmpeg/avconv Extra O/P options blank.
Note well: Any entered Extra I/P or O/P options are also used when screencasting.
Select container for combined A and V track: avi (or ogv if ogg_q and Theora)
For Combine AV auto, select as true.
For Combine AV del, select as false.
Note that the alternative true for checkbox del causes the separate A and V tracks to be automatically deleted after the final combined AV is produced.
Press Record button to record the A and V tracks (which, with above setting, are auto-combined into final avi container once Record Stop button is pressed).
With the above selections, three files are saved: the date-stamped video track, the date-stamped audio track and the combined AV video (whose name begins with the characters pAV). Note that it is possible to substitute an alternative audio or video track and to then create the final pAV combined AV video file using these by clicking the Combine AV button in the config gui.
-----
To view/hear result:
Method 1: Press Play controls play button. This method plays the individual video and audio tracks in parallel (allowing you to adjust the Audio sync offset).
Method 2: If audio sync offset set up is already fine, you can simply press the Play combined AV file button to play final combined AV video in your system video player (assuming Combine AV auto was selected).
-----
As well as having a GUI interface, pAVrecord can also be used from the commandline. It reads commandline args of the form:
[action][filename][duration] via stdin (e.g. pipe).
For example
Code: Select all
pavrecord [with no args starts GUI version]
pavrecord rec /root anything.avi 10 [records without GUI]
pavrecord play /root out.avi [plays without GUI]
or can use via pipe:
echo play /mnt/sda1 out.avi 20 | pavrecord -
[also plays without GUI; here using duration of 20 seconds]
If no outfile or duration parameter is supplied, pavrecord uses previous configuration as defaults.
pavrecord quit
does what you'd expect...
pavrecord --help
for commandline usage