bugGnash - The GNU Flash player - Bugs: bug #24600, Some youtube videos don't play...

 
 

bug #24600: Some youtube videos don't play (codec issues?)

Submitter:  Ed Martin <edman007>
Submitted:  Sat 18 Oct 2008 09:04:51 PM UTC
   
 
Category:  None Severity:  3 - Normal
Release:  trunk Status:  Fixed
Privacy:  Public Assigned to:  bjacques
Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Mon 20 Oct 2008 09:31:03 AM UTC, comment #7: 

Thanks for reporting and testing, Ed!

Bastiaan Jacques <bjacques>
Group Member
Mon 20 Oct 2008 03:30:45 AM UTC, comment #6: 

Great, audio and video now works with gst and ffmpeg

Ed Martin <edman007>
Sun 19 Oct 2008 11:26:26 PM UTC, comment #5: 

Audio parts now also committed. Please test!

Bastiaan Jacques <bjacques>
Group Member
Sun 19 Oct 2008 07:11:57 PM UTC, comment #4: 

I've committed fixes for the video part of this bug to trunk (for both gstreamer and ffmpeg). Ed, can you give it a spin?

Bastiaan Jacques <bjacques>
Group Member
Sun 19 Oct 2008 04:02:27 PM UTC, comment #3: 

I've confirmed (with ffmpeg media handler) that FLVParser must do the following:

- not include the first two fields in the AVCVIDEOPACKET structure in the buffer.
- Pass the first buffer (if AVCVIDEOPACKET type is 0) as the VideoInfo (ffmpeg's) extradata.

Optionally, FLVParser may omit emitting the first buffer (type 0) to the decoder, so long as it is present in extradata.

Bastiaan Jacques <bjacques>
Group Member
Sun 19 Oct 2008 09:42:57 AM UTC, comment #2: 

I looked at gstflvdemux, Gstreamer's FLV demuxer. For video tag 7 (AVC/H264), the demuxer parses the AVCVIDEOPACKET (Adobe FLV spec, p. 9). If the packet type is 0, the demuxer uses the following AVCDecoderConfigurationRecord when negotiating for a video decoder.

So to get this video to work we'll have to either a) have VideoDecoderGst parse the video or b) make sure that the AVCDecoderConfigurationRecord is passed at VideoDecoder initialisation time. I prefer solution b, because the VideoDecoder interface does not expect any parsing to be necessary for video types 1-6.

Bastiaan Jacques <bjacques>
Group Member
Sat 18 Oct 2008 09:12:01 PM UTC, comment #1: 

Besides the currently missing VideoDecoder* hooks, I think there may be a bug in our FLV Parser, given that this movie plays with gstreamer when I disable the internal FLV parser (and use MediaParserGst instead).

Bastiaan Jacques <bjacques>
Group Member
Sat 18 Oct 2008 09:04:51 PM UTC, original submission:  

Some youtube videos such as http://www.youtube.com/watch?v=hJOiCsL6eD0 do not play, ffmpeg states that this video is h264 video and faad audio, in my install ffmpeg-trunk, mplayer-trunk, libx264-trunk the flv from youtube plays just fine with ffplay and mplayer, so my libraries support whatever codecs are in this video, this issue happens when gnash is compiled to use ffmpeg or gst (which uses its own version of ffmpeg, i tested with 0.10.5 gst-ffmpeg)

When attempting to play this video i get this in the log (the error differs in wording slightly between ffmpeg and gst, but otherwise the same message)

18:39:47: ERROR: Unsupported video codec 7
18:39:47: ERROR: NetStream: Could not create Video decoder: Cannot find suitable decoder for flash codec 7
18:39:47: ERROR: Could not create Audio decoder: Unsupported audio codec 10

I was talking to bjacques who came up with this patch http://pastebin.ca/raw/1230428, it does not solve the problem but removes the error message about the video codec and makes the progress bar move [no video or audio though], the errors seen when using this patch are shown below:

ERROR: Could not create Audio decoder: AudioDecoderGst: cannot handle this codec!
16:53:00: ERROR: Error decoding encoded video frame in NetStream input
16:53:00: ERROR: nextVideoFrameTimestamp returned true, but decodeNextVideoFrame returned null, I don't think this should ever happen

(those last two lines just repeat a whole lot)

other example videos

http://www.youtube.com/watch?v=cUEkOVdUjHc
http://www.youtube.com/watch?v=aYKRXx8sLYM

and i'm on x86_64, and gnash is configured as:

 Renderer: cairo - GUI: GTK - Media handler: gst
   Configured with: --prefix=/usr --libdir=/usr/lib64 --sysconfdir=/etc --localstatedir=/var --mandir=/usr/man --docdir=/usr/doc/gnash-bzr --enable-gui=gtk --enable-renderer=cairo --enable-jpeg --enable-freetype2 --enable-fontconfig --enable-Xft --enable-jemalloc --enable-media=gst --enable-gstreamer
   CXXFLAGS: -O3 -fPIC -march=native -pthread -pthread     -W     -Wall     -Wcast-align     -Wcast-qual     -Wpointer-arith     -Wreturn-type     -Wnon-virtual-dtor     -Wunused    
Built against gstreamer version: 0.10.19
Linked against gstreamer version: 0.10.19

(again, tested with ffmpeg as well, same issue)

Ed Martin <edman007>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by bjacques (Posted a comment)
  • -email is unavailable- added by edman007 (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 5 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2008-10-20 bjacques Open/ClosedOpen Closed
    2008-10-20 bjacques StatusReady For Test Fixed
    2008-10-19 bjacques StatusConfirmed Ready For Test
        Assigned toNone bjacques
    2008-10-18 bjacques StatusNone Confirmed

    Back to the top

    Powered by Savane 3.13-d3ae.
    Corresponding source code