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 689398 - avenc_wmav1: audio encoder timestamps broken, can't transcode videos to WMV anymore
avenc_wmav1: audio encoder timestamps broken, can't transcode videos to WMV a...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-libav
1.x
Other Linux
: Normal critical
: 1.1.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-12-01 01:35 UTC by Jens Georg
Modified: 2012-12-01 23:24 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Sample program (17.27 KB, application/x-xz)
2012-12-01 01:35 UTC, Jens Georg
Details

Description Jens Georg 2012-12-01 01:35:10 UTC
Created attachment 230368 [details]
Sample program

With GStreamer 0.10 I could transcode from anything to ASF with WMV1/WMAv2 using the attached code. This isn't possible anymore with GStreamer 1.0, but it was working with some 0.11.x version (resulting in bug 680487).

The resulting file is audio only and the transcoding process gets stuck. 

I tested transcoding with the Sintel trailer http://ftp.nluug.nl/ftp/graphics/blender/apricot/trailer/sintel_trailer-480p.mp4, but it really is failing with anything else (MPEG4-SP + MP3 in AVI, webm, ...).
Comment 1 Tim-Philipp Müller 2012-12-01 12:39:37 UTC
This is with git master, not 1.0.x, right?

I think the port to the base audio classes or the new libav API in git master has messed up the audio encoder output timestamps. They are way too low, by a factor of a thousand, if not many thousands. This then makes the muxer select only audio as input and never video, and at some point that wedges the queues.
Comment 2 Tim-Philipp Müller 2012-12-01 12:41:51 UTC
See:

gst-launch-1.0 audiotestsrc ! audio/x-raw,channels=2 ! identity silent=false ! avenc_wmav1 bitrate=64000 ! fakesink silent=false -v 2>&1 | grep chain | less -R

The timestamps should move roughly in step.
Comment 3 Jens Georg 2012-12-01 13:20:57 UTC
Well, master-ish:

gstreamer: 1afb1f12ef5b7dfbd3fc4ad2bc68f191d1b78e62
base: 830b500d40297ddd51a9692e6b8662ea71863089
good: 5d0507c09e8c19a01ba59476bd16cff7ec1b2006
libav: 4132a73f0e2eb4e8eff5b1066535d79cf010eace

Should it be any better with 1.0.x? 

I thought that that master means 1.0.x, maybe gnome should switch to 1.0 branches in jhbuild then?
Comment 4 Tim-Philipp Müller 2012-12-01 13:56:08 UTC
GNOME 3.7/master should be tracking git master, GNOME 3.6.x should be tracking the 1.0 branch.
Comment 5 Tim-Philipp Müller 2012-12-01 23:24:57 UTC
commit 819d4d2a04178bc71ea5eef0dc369024b83984a3
Author: Tim-Philipp Müller <tim@centricular.net>
Date:   Sat Dec 1 23:05:23 2012 +0000

    avaudenc: fix output timestamping
    
    We need to pass the number of samples encode in the output buffer
    to gst_audio_encoder_finish_frame(), not the number of frames.
    Fixes output timestamps being way too small, and transcoding
    problems.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=689398