Opened 11 years ago

Closed 11 years ago

#2765 closed defect (fixed)

brightcove hls streams fail to play

Reported by: adammw Owned by:
Priority: minor Component: avformat
Version: git-master Keywords: hls https
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug: brightcove hls streams fail to play

Using any m3u8 file with ffplay or ffmpeg produces a Protocol not found error.

How to reproduce:

$ ffplay -v 9 -loglevel 99 "http://c.brightcove.com/services/mobile/streaming/index/master.m3u8?videoId=2516468435001"
ffplay version 1.2.1 Copyright (c) 2003-2013 the FFmpeg developers
  built on Jul 10 2013 02:44:54 with Apple clang version 4.1 (tags/Apple/clang-421.11.65) (based on LLVM 3.1svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --enable-ffplay --enable-libspeex --enable-libopus
  libavutil      52. 18.100 / 52. 18.100
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.104 / 54. 63.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 42.103 /  3. 42.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
[hls,applehttp @ 0x7f9e01031a00] Format hls,applehttp probed with size=2048 and score=100
[AVIOContext @ 0x7f9e022402c0] Statistics: 1550 bytes read, 0 seeks
http://c.brightcove.com/services/mobile/streaming/index/master.m3u8?videoId=2516468435001: Protocol not found
    nan A-V:  0.000 fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0   

Protocols enabled:

$ ffmpeg -protocols
ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jul 10 2013 02:44:54 with Apple clang version 4.1 (tags/Apple/clang-421.11.65) (based on LLVM 3.1svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --enable-ffplay --enable-libspeex --enable-libopus
  libavutil      52. 18.100 / 52. 18.100
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.104 / 54. 63.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 42.103 /  3. 42.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Supported file protocols:
Input:
applehttp
cache
concat
crypto
data
file
gopher
hls
http
httpproxy
mmsh
mmst
pipe
rtp
srtp
tcp
udp
rtmp
rtmpe
rtmps
rtmpt
rtmpte
Output:
file
gopher
http
httpproxy
md5
pipe
rtp
srtp
tcp
udp
rtmp
rtmpe
rtmps
rtmpt
rtmpte

Change History (7)

comment:1 by Carl Eugen Hoyos, 11 years ago

Which application plays the stream?

in reply to:  1 ; comment:2 by adammw, 11 years ago

Replying to cehoyos:

Which application plays the stream?

Both iOS devices and Apple's QuickTime Player support playing the stream without error.
Trying the same stream with ffplay yields the error shown above.

in reply to:  2 comment:3 by Carl Eugen Hoyos, 11 years ago

Replying to adammw:

Replying to cehoyos:

Which application plays the stream?

Both iOS devices and Apple's QuickTime Player support playing the stream without error.

The reason I asked was that it fails here on iOS.

comment:4 by adammw, 11 years ago

I think the content must be geo-restricted to Australia.
I've debugged the issue a bit more, and it appears to be that my version of ffmpeg cannot open HTTPS urls, however none of the logs make that very clear. (Ie. Protocol not found error is listed against the original HTTP url, not the actual rendition/variant URL of the second m3u8 file).
Downloading the segments with another (HTTPS-supporting) program and rewriting the URLs makes it work fine with ffplay.

comment:5 by adammw, 11 years ago

Yes, this is a bug in Homebrew which caused --enable-openssl not to be declared in the configure script, and hence the resulting binary did not support HTTPS.

Please close this ticket.

comment:6 by Carl Eugen Hoyos, 11 years ago

Component: undeterminedavformat
Keywords: https added
Priority: normalminor
Reproduced by developer: set
Status: newopen
Version: unspecifiedgit-master

Patch sent that improves the console output.

comment:7 by Carl Eugen Hoyos, 11 years ago

Resolution: fixed
Status: openclosed

libavformat now prints a warning if https protocol was requested but not configured, thank you for the report and the analysis!

Note: See TracTickets for help on using tickets.