After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 648343 - Video fade causes Theora Y444 output instead of I420
Video fade causes Theora Y444 output instead of I420
Status: RESOLVED INCOMPLETE
Product: pitivi
Classification: Other
Component: Rendering
0.13.5
Other Linux
: Normal normal
: 0.91
Assigned To: Pitivi maintainers
Pitivi maintainers
Depends on:
Blocks:
 
 
Reported: 2011-04-21 00:49 UTC by Jason Gerard DeRose
Modified: 2014-11-06 20:30 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
freshstart.xptv (20.99 KB, text/x-xptv)
2011-04-21 00:52 UTC, Jason Gerard DeRose
Details

Description Jason Gerard DeRose 2011-04-21 00:49:05 UTC
I'm working on a video that I'm rendering to OGG Theora.

If the video has any fades (using the video "levels" in the timeline), the rendered video is in the Y444 colorspace (no chroma subsampling). This colorspace isn't as well supported (eg Chromium displays it all crazy), and as PiTiVi doesn't let you choose the colorspace anyway, this is certainly a bug... output should be in I420. If I change the mixer so that there is no fade anywhere in timeline, then output is I420 (same edit, just making this change).

You can confirm the colorspace using the `ogginfo` command line tool. For example, video with fade:

"""
jderose@jgd-ws:~/bzr/whatsnew$ ogginfo whatsnew2.ogv
Processing file "whatsnew2.ogv"...

New logical stream (#1, serial: 4f220126): type theora
Theora headers parsed for stream 1, information follows...
Version: 3.2.1
Vendor: Xiph.Org libtheora 1.1+ 20100314 (Ptalarbvorm)
Width: 960
Height: 540
Total image: 960 by 544, crop offset (0, 4)
Framerate 25/1 (25.00 fps)
Pixel aspect ratio 1:1 (1.000000:1)
Frame aspect 16:9
Colourspace unspecified
Pixel format 4:4:4
Target bitrate: 0 kbps
Nominal quality setting (0-63): 52
Theora stream 1:
 Total data length: 4758512 bytes
 Playback length: 1m:26.280s
 Average bitrate: 441.215763 kb/s
Logical stream 1 ended
"""

Same edit without the fade:

"""
jderose@jgd-ws:~/bzr/whatsnew$ ogginfo whatsnew3.ogv
Processing file "whatsnew3.ogv"...

New logical stream (#1, serial: 5e8ba4ba): type theora
Theora headers parsed for stream 1, information follows...
Version: 3.2.1
Vendor: Xiph.Org libtheora 1.1+ 20100314 (Ptalarbvorm)
Width: 960
Height: 540
Total image: 960 by 544, crop offset (0, 4)
Framerate 25/1 (25.00 fps)
Pixel aspect ratio 1:1 (1.000000:1)
Frame aspect 16:9
Colourspace unspecified
Pixel format 4:2:0
Target bitrate: 0 kbps
Nominal quality setting (0-63): 52
Theora stream 1:
 Total data length: 3537608 bytes
 Playback length: 1m:26.280s
 Average bitrate: 328.011868 kb/s
Logical stream 1 ended
"""

This is possibly a bug in GStreamer (ffmpegcolorspace or colorspace come to mind), and also possibly specific to the version of GStreamer and plugins in Ubuntu Natty:

  https://bugs.launchpad.net/ubuntu/+source/pitivi/+bug/766716
Comment 1 Jason Gerard DeRose 2011-04-21 00:52:14 UTC
Created attachment 186403 [details]
freshstart.xptv

This is the edit in question.  I'll have to experiment some, but one thing about this edit that could be causing problems is the source clips are in a number of different resolutions and aspect ratios, which I imagine could effect how the caps get negotiated as far as videoscale, colorspace, etc.
Comment 2 bens 2011-09-12 16:02:08 UTC
Hi, thanks for this report.  This is very interesting.

This report makes sense.  Pitivi normally does the minimum number of conversions possible, and also preserves quality as much as possible.  This means if the input is I420, and nothing forces that to change, and the output (theoraenc) supports I420 (which it does), then the output will be I420 (same as the input).

Applying fades/dissolves in Pitivi uses transparency, which in gstreamer requires the AYUV colorspace.  This is a 4:4:4 colorspace.  After this conversion, the rest of the pipeline remains 4:4:4 to avoid unnecessary conversions ... and theoraenc supports 4:4:4, so that's the output.

4:4:4 is a mandatory part of the Theora spec, so the bug here is really in Chrome (or any player that doesn't play 4:4:4).  However, it's true that we don't provide the user any way to control the output chroma subsampling, and it may change in unexpected ways.

Arguably, we should provide controls for advanced users to choose the color representation ... or just force all outputs to one representation for each encoder.  (We can't choose one representation for all encoders if want to support, say, PNG.)

Ideally, users shouldn't have to worry about this ... so I think we'd prefer to fix the players!
Comment 3 Jean-François Fortin Tam 2013-09-30 19:34:06 UTC
Hi there,

As Pitivi 0.91 has now been released, we would like to encourage you to test it.

It is quite possible that your issue is fixed in this version,
as it is a very significant technical overhaul compared to the 0.15 series.
Read more about the 0.91 release here: http://wiki.pitivi.org/wiki/0.91

If you can reproduce this bug against 0.91 or newer (such as the git version),
please update this bug report accordingly with detailed instructions to
reproduce the bug, updated sample files/projects in xges format, etc.

Drop by our IRC channel if you need help getting started or want to help out!

Thanks!