Red Hat Bugzilla – Bug 525155
Theora is broken in Rawhide
Last modified: 2010-03-05 22:47:21 EST
Created attachment 362310 [details]
Description of problem:
There are some problems with theora in current Rawhide. I don't know if it is application problems or codec problems, but I hope you can decide. All I know is that everything worked ok in Fedora 11.
I have tried to record my desktop using gtk-recordmydesktop and the output file is totally broken. It was set to 15fps, but both in totem and mplayer it plays like 0.25fps (1 frame in 4 seconds). Vlc can't even play it.
When recording using istanbul, it plays correctly in all players, but video quality is unbelievably poor.
I believe all the records/players have not broken out of the blue at once, so there must be some problem in the codec itself.
I attach the two recordings for examination. In both I should be opening system and context menus and moving the cursor over the items fluently.
Version-Release number of selected component (if applicable):
Created attachment 362311 [details]
The istanbul.ogv file is encoded with qi=16 and the resulting bitrate is 52kbit/sec; this reflects a quality setting of "1" in most applications. Setting the output for low quality/low bitrate actually producing the requested result is notabug.
Recordmydesktop.ogv is encoded with a target bitrate of 45kbit/sec but a minimum qi of 63 (equivalent to minimum quality of 10 in most applications).
You're telling the encoder that it must use the highest configurable precision to encode the frames, yet that it can't use more than 45kbit/sec. Older versions of the encoder would just wildly violate your rate constraint under this kind of situation, the newer encoder drops frames in an attempt to meet both your demands.
Again, not a bug in libtheora.
If the recording tools don't make it easy to adjust the settings, or have illogical results then there should probably be bugs filed against them.
Thanks for the explanation. I was puzzled how it is possible that recordmydesktop worked in F11 with previous libtheora version and doesn't work in F12. If you say that previous libtheora ignored wrong settings, while new one doesn't, then it's explained I guess.
I checked istanbul in F11 (didn't try it before) and it produces same low quality picture as in F12. That's settled too I guess.
If you really believe it's a problem in recordmydesktop and not in libtheora, I will report this bug in recordmydesktop project and this issue can be closed as notabug. Can you tell me in which tool I could try to record/transcode a movie into theora to check the library works ok? One tool that works well is enough.
This bug appears to have been reported against 'rawhide' during the Fedora 12 development cycle.
Changing version to '12'.
More information and reason for this action is here:
Moving to recordmydesktop
I have reported the bug in the upstream:
Created attachment 370301 [details]
jumpy recording with gtk-recordmydesktop
For me the recording is jumpy, see the attachment, the video freezes from time to time for a few seconds and then jumps forward.
@Gregory Maxwell: neither Istanbul or gtk-RecordMyDesktop allow the user to change the bitrate
Confirmed on my F12 x86_64 system.
Downgrading libtheora to the F11 version from
is possible, as no other dependencies seem to be involved. In my case, I had to downgrade both the x86_64 and the i686 package.
This brings smooth session recording back, of course with the "old" Theora encoder with lower quality.
Just a workaround for the time until recordmydesktop is fixed!
there are a lot of dependencies for libtheora, including recordmydesktop and gstreamer-plugins-base
Sorry, maybe I was unclear. After downloading the F11 version, I only ran
sudo yum downgrade --nogpgcheck libtheora-1.0-3.fc11.x86_64.rpm
and it worked! I did not have to worry about downgrading recordmydesktop or other packages.
For the i686 version, I messed it up at first, since I ran
sudo yum erase libtheora.i686
which removed a few extra packages (gstreamer-plugins-base.i686, phonon.i686, phonon-backend-gstreamer.i686, qt-x11.i686) as well... But then I reinstalled them.
Hope this helps!
"Istanbul" and "Recordmydesktop" both record jumpy video on my machine (Fedora 12 x86_64).
I've tried adding --v_bitrate 700000 in recordmydesktop-gtk int the Misc tab of the advanced settings window (it's an option of recordmydesktop, as written in the man page), but it didn't help. I think it is not related to the bitrate.
extra test that i did was recording with the CLI, maximum bitrate and 50 fps. the video was a little less jumpy, but still too jumpy.
elad: Thats not high enough. You're asking theora to encode your screen with nearly perfect quality. Uncompressed 4:2:0 1024x768x15fps is 141mbit/sec. It's going to have to drop some frames to encode that into 700kbit/sec over a short time window with the requested near-perfect quality.
I explained very specifically what recordmydesktop is doing wrong. Does this package not have a maintainer?
In any case, I'll attach a patch which gives sane behaviour.
Created attachment 373762 [details]
Patch to use sane defaults.
>> Does this package not have a maintainer?
I have reported it upstream, but as you can see, the upstream maintainer haven't responded yet. Thank you for the patch. Let's hope at least Fedora maintainer will decide to fix this issue until it is fixed upstream.
I've tested Gregory's patch. It works, and even seems to improve the encoding speed.
Great work Gregory!
Created attachment 374095 [details]
Updates rmd_getzpixmap.c to use shmproto.h instead of shmstr.h
Created attachment 374096 [details]
Updates rmd_update_image.c to use shmproto.h instead of shmstr.h
I'm running Fedora 12 64-bit, and had a problem with the make stage as my system could not find shmstr.h as this now seems to have been replaced by shmproto.h - therefore I've attached two patches (forgive me, my knowledge of patch is very basic at this point).
For anyone interested in trying this, I have included instructions below - please correct any mistakes you find!
# Install some dependencies
yum install libICE-devel libSM-devel libXext-devel libXdamage-devel libXfixes-devel libogg-devel libvorbis-devel libtheora-devel jack-audio-connection-kit-devel xorg-x11-proto-devel
# Change the folder below to your own path!
gzip -d recordmydesktop-0.3.8.1.tar.gz
tar -xvf recordmydesktop-0.3.8.1.tar
gzip -d gtk-recordmydesktop-0.3.8.tar.gz
tar -xvf gtk-recordmydesktop-0.3.8.tar
# Add patch to fix new theora
wget https://bugzilla.redhat.com/attachment.cgi?id=373762 -O sanity.patch
patch -p1 < sanity.patch
# Add patches to change shmstr.h to shmproto.h as in 64-bit Fedora "yum whatprovides *shmstr.h" failed
# See also: http://bugs.gentoo.org/show_bug.cgi?id=291111
wget https://bugzilla.redhat.com/attachment.cgi?id=374095 -O rmd_getzpixmap.patch
wget https://bugzilla.redhat.com/attachment.cgi?id=374096 -O rmd_update_image.patch
patch -p1 < rmd_getzpixmap.patch
patch -p1 < rmd_update_image.patch
# Change the folder below to your own path!
Created attachment 374101 [details]
Fedora 12 64-bit instructions correctly formatted
Attached above as text file - copy and paste test for above instructions shows that some lines are too long and break onto another line!
there is another bug opened for this problem: https://bugzilla.redhat.com/show_bug.cgi?id=533531
there is a working patch for this problem attached to that bug.
You should search in the bugzilla before you post a patch.
*** Bug 544995 has been marked as a duplicate of this bug. ***
recordmydesktop-0.3.8.1-4.fc12 has been submitted as an update for Fedora 12.
recordmydesktop-0.3.8.1-4.fc11 has been submitted as an update for Fedora 11.
recordmydesktop-0.3.8.1-4.fc12 has been pushed to the Fedora 12 stable repository. If problems still persist, please make note of it in this bug report.
recordmydesktop-0.3.8.1-4.fc11 has been pushed to the Fedora 11 stable repository. If problems still persist, please make note of it in this bug report.
i'm using F12 64bit and i can't get this update till now !
i did many things to get this using yum update & yum clean all && yum update.
but the update doesn't get it.
should i wait another day for the mirrors to be synced?
i didn't wait for the update process.
after installing this update, the video is running very fast and the sound stops after 1 sec .
any update about this issue ?
Mohamed, the above-mentioned update is available in fedora updates repo and it works well for the issue described. If you experience another problem, please report it as a separate issue and include as many details as possible. Thanks.