Re: HOWTO: Proper Screencasting on Linux
Thanks for the howto! I've installed the latest versions of FFmpeg and x264 and it all works well, but... After having uploaded a testvid to YouTube the result is horrible! So I'm wondering if the quality loss could be solved on my side or that it's simply YouTube that degrades the quality.
Here's the little script I'm using:
Code:
#!/bin/bash
DATE=`date +%Y%m%d`
TIME=`date +%Hh%M`
(sleep 3;qtractor $HOME/Screencasts/Screencast.qtr) &
xterm -e jack_capture -b 24 $HOME/Screencasts/screencast_audio_$DATE-$TIME.wav &
ffmpeg -an -f x11grab -r 30 -s 1920x1080 -i :0.0+1920,0 -vcodec libx264 -vpre lossless_ultrafast -threads 4 $HOME/Screencasts/screencast_video_$DATE-$TIME.mkv
killall jack_capture
The video that comes out looks really good, and it still looks good after I've edited it with OpenShot. I render it to a mp4 container with x264 as the video codec and mp3 as the audio codec and keep the fps at 30 (as advised here: http://www.google.com/support/youtub...&answer=132460). I also tried uploading just the mkv file from FFmpeg, same result. Could it be my resolution? 1920x1080 should be supported.
Here are some snapshots from VLC. One from the original mkv file and one from the YouTube flv file. The difference is really obvious.
Thanks,
Jeremy
Re: HOWTO: Proper Screencasting on Linux
Quote:
Originally Posted by
AutoStatic
Thanks for the howto! I've installed the latest versions of FFmpeg and x264 and it all works well, but... After having uploaded a testvid to YouTube the result is horrible! So I'm wondering if the quality loss could be solved on my side or that it's simply YouTube that degrades the quality.
Here's the little script I'm using:
Code:
#!/bin/bash
DATE=`date +%Y%m%d`
TIME=`date +%Hh%M`
(sleep 3;qtractor $HOME/Screencasts/Screencast.qtr) &
xterm -e jack_capture -b 24 $HOME/Screencasts/screencast_audio_$DATE-$TIME.wav &
ffmpeg -an -f x11grab -r 30 -s 1920x1080 -i :0.0+1920,0 -vcodec libx264 -vpre lossless_ultrafast -threads 4 $HOME/Screencasts/screencast_video_$DATE-$TIME.mkv
killall jack_capture
The video that comes out looks really good, and it still looks good after I've edited it with OpenShot. I render it to a mp4 container with x264 as the video codec and mp3 as the audio codec and keep the fps at 30 (as advised here:
http://www.google.com/support/youtub...&answer=132460). I also tried uploading just the mkv file from FFmpeg, same result. Could it be my resolution? 1920x1080 should be supported.
Here are some snapshots from VLC.
One from the original mkv file and
one from the YouTube flv file. The difference is really obvious.
Thanks,
Jeremy
I hope you get an answer soon. You can join the FFmpeg support channel #ffmpeg @ irc.freenode.net, many people there can help.
Re: HOWTO: Proper Screencasting on Linux
Hello verb3k, thanks for the reply. It has got something to do with the 1920x1080 setting. If I downscale the video to 1280x720 and upload it to YouTube the quality is much better. So for me, issue solved, from now on I'll do screencasts in 1280x720.
Re: HOWTO: Proper Screencasting on Linux
I can confirm that YouTube creates an ugly output with 1920x1080 for the few tests I did. Good to know that YouTube can now properly decode lossless video from x264 (at least with my limited tests). YouTube didn't like my previous attempts, but that was months ago.
As for your command, the only thing I can recommend is to change -threads 4 to -threads 0 which will automatically choose a correct value for your CPU, unless for some reason you want to use a certain value.
Re: HOWTO: Proper Screencasting on Linux
Quote:
Originally Posted by
FakeOutdoorsman
As for your command, the only thing I can recommend is to change -threads 4 to -threads 0 which will automatically choose a correct value for your CPU, unless for some reason you want to use a certain value.
My system has 4 CPU's. I've checked both 0 and 4 with htop and it seems a setting of 4 spreads the load better.
Re: HOWTO: Proper Screencasting on Linux
Just ran
Code:
ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 1920x998 -i :0.0+0,24 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 output.mkv
for a while and played it in Totem. Only saw a black screen and my mouse moving. Same result I had using RecordMyDesktop. I wonder what is going on. Is Compiz - which I just started to use - a problem?
Did
Code:
ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 1408x890 -i :0.0 -acodec flac -vcodec libx264 -vpre lossless_ultrafast -threads 0 output.mkv
, converted it to an mp4 and got the same result: mouse pointer moving around on a black screen with my voice in the background. Very odd..
Re: HOWTO: Proper Screencasting on Linux
Did you disable Compiz and try again? It works fine in Totem, and I don't think it's a player problem since the pointer is there. It might be something going wrong during the recording, or a bug in ffmpeg.
Re: HOWTO: Proper Screencasting on Linux
@ Verb3k I think it is an issue with Compiz and recording using Lucid Lynx in VirtualBox that causes the black screen where audio is good but only the mouse pointer is sees. As the same happened using Ffmpeg and RecordMyDesktop. I hope I can solve this though as I love to use Compiz for its zoom function.
I did ran RecordMydesktop without Compiz in VMWare Fusion (cannot handle Compiz) and all went well, except for misformed audio (my voice) for about three seconds.
Re: HOWTO: Proper Screencasting on Linux
On my recordings the mouse cursor doesn't change depending context. For example, when the cursor is over a text field it does not change to an "I" shape. Also, the regular cursor comes out with different shape, but that's not a big issue. Is there a way to deal with this?
I'm using Trisquel GNU/Linux 3.5, which is based on Ubuntu Karmic Koala.
Re: HOWTO: Proper Screencasting on Linux
Did you compile FFmpeg, or are you using an older version from a repository? The reason I ask is because your FFmpeg may be too old to be able to record the system mouse. Show the output of ffmpeg -version. This should indicate how old your version is.
If you decide to compile FFmpeg, be aware that it does not properly render a mouse that uses transparency (such as a dropshadow). I recommend using a mouse theme without any transparency effects when using FFmpeg to record your screen.