WEB_H_STREAM_METHOD, unable to view mpeg streams for events.

Forum for questions and support relating to the 1.24.x releases only.
Locked
jbmia
Posts: 50
Joined: Sat Jul 30, 2011 1:56 pm

WEB_H_STREAM_METHOD, unable to view mpeg streams for events.

Post by jbmia »

Hi guys,

Code: Select all

(Note:  I had to remove 4 or 5 very relevant links from this post, one of which is an fpaste of my debug log, as the Preview function thought it was "too spammy".  If someone could PLEASE remove that from my profile, it would be immensely appreciated as this additional information is very important to filling in the blanks here...  I can then edit this post with the links to fill in those blanks...  Just looking for assistance and to help those in the future that run across this post.  No bad karma...
I've researched this one a fair bit and haven't had success yet. I've got WEB_H_STREAM_METHOD, flagged to "mpeg" and when I attempt to view an event, I'm either getting a blank white or black screen depending on format (asf, mpeg, etc). I've tried this in chrome, ffox, and explorer across 2 machines. I've tried mpeg, awf, and asf and none of them work. Ffmpeg was installed during ./configure and I've verified the ffmpeg path is correct, as I can view mpeg "generated" files. Nothing shows in my zm*.log or apache_log files... However, /var/log/messages shows:

Code: Select all

Aug  2 15:30:52 9745 zms[8242]: ERR [MPEG streaming of 'source=event&mode=mpeg&event=3071&frame=1&scale=100&rate=100&bitrate=150000&maxfps=30&format=mpeg&replay=single&connkey=755037&rand=1312313451' attempted while disabled]
The thing that throws me is the "attempted while disabled" line.

After doing a bit more research it appears that I had some ffmpeg errors that were detailed in my conf.log file. These did come up as errors that would prevent a make, but had I read the log, I'd have seen that they were fatal errors (as per the log). Basically, ZM's config file couldn't find libavutil/avutil.h, libavcodec/avcodec.h, libavformat/avformat.h, libswscale/libswscale.h, and pcre/pcre.h. (ac.nonexistent.h also comes up as missing, but my understanding is that's a test header file) These issues have been documented in similar threads and points in the wiki:link removed
link removedh There are others, but the advised solution is to drop a
CPPFLAGS="-D__STDC_CONSTANT_MACROS
into the ./configure statement. This didn't help me.

That took me further into the config.log and then over into configure and configure.ac... This post in particular clued me into what I think was a problem with configure.ac... link removed, where's it's detailed:
> Hi,
>
> according to the configure.ac <configure.ac> file provided
> in the sources, paths to ffmpeg headers and librairies are set
> from the value FFMPEG_PREFIX given to --with-ffmpeg like this
> (line 79):
> FFMPEG_LIBS="-L${FFMPEG_PREFIX}/${LIB_ARCH}"
> FFMPEG_CFLAGS="-I${FFMPEG_PREFIX}/include"
> whereas it should be (if we use ffmpeg from RPM Fusion and with
> --with-ffmpeg=/usr):
> FFMPEG_LIBS="-L${FFMPEG_PREFIX}/${LIB_ARCH}/ffmpeg
> FFMPEG_CFLAGS="-I${FFMPEG_PREFIX}/include/ffmpeg"
> Or maybe even better (more "portable"):
> FFMPEG_LIBS=`pkg-config --libs libavcodec libavformat`
> FFMPEG_CFLAGS=`pkg-config --cflags libavcodec libavformat`
>
> Anyway this would need to regenerate the configure script using
> the autotools (autoreconf and such...).
>
> Sorry, for the last lines, I mean:
> FFMPEG_LIBS=`pkg-config --libs libavcodec libavutil`
> FFMPEG_CFLAGS=`pkg-config --cflags libavcodec libavutil`
That took me into playing with the --with-ffmpeg option extensively.. no matter what path I put in there, nothing helped. I tried
/usr/share/ffmpeg
,
/usr/local/include/ffmpeg
,
/usr/bin/ffmpeg
and nothing worked... ./configure kept on looking for the lib files above as either
/user/include/ffmpeg/include
or
just /user/include
, etc when it needed to look in
/usr/include/ffmpeg
. So, I took a much closer look at configure.ac and made the following changes:

1. Added "/ffmpeg" on end of following two lines:

Code: Select all

FFMPEG_LIBS="-L${FFMPEG_PREFIX}/${LIB_ARCH}/ffmpeg"
FFMPEG_CFLAGS="-I${FFMPEG_PREFIX}/include/ffmpeg"
2. Commented out the following lines, which appeared to be just duplicates of each and ended up pointing the configure script to look in the wrong places even though the correct ones were already defined:

Code: Select all

CHECK_HEADERS(mysql/mysql.h,,AC_MSG_ERROR(zm requires MySQL headers - check that MySQL development packages are installed),)
AC_CHECK_HEADERS(libavutil/avutil.h,,,)
#AC_CHECK_HEADERS(ffmpeg/avutil.h,,,)
AC_CHECK_HEADERS(libavcodec/avcodec.h,,,)
#AC_CHECK_HEADERS(ffmpeg/avcodec.h,,,)
AC_CHECK_HEADERS(libavformat/avformat.h,,,)
#AC_CHECK_HEADERS(ffmpeg/avformat.h,,,)
AC_CHECK_HEADERS(libswscale/swscale.h,,,)
#AC_CHECK_HEADERS(ffmpeg/swscale.h,,,)
#AC_CHECK_HEADERS(pcre/pcre.h,AC_SUBST(ZM_PCRE,"1"),,)
AC_CHECK_HEADERS(pcre.h,AC_SUBST(ZM_PCRE,"1"),,)
if test "$ENABLE_MMAP" == "yes"; then
AC_CHECK_HEADERS(sys/mman.h,,,)
AC_CHECK_HEADERS(fcntl.h,,,)
Did a autoreconf and reran ./configure... Making these changes enabled me to configure zm so that there were no errors on those header files above... Make & Make Install went fine... ZM restarted...

So now I tested the ability to view mpg steams for events and for live viewing with no success. I'm still getting a blank or black screen depending on the mpeg, wms, mov or whatever.. I've pretty much tested them all on all 3 browsers and 2 machines... Nothing in the zm*logs, nothing in the httpd error_log, but again I do get something interesting in /var/log/messages:
Aug 2 23:12:47 9745 zms[18351]: INF [Debug Level = 0, Debug Log = <none>]
Aug 2 23:12:47 9745 zms[18351]: INF [New Debug Level = 9, New Debug Log = /var/log/zm/debug/zm_debug.log.18351]
Aug 2 23:12:47 9745 zms[18351]: WAR [Could not deduce output format from file extension: using mpeg]
Aug 2 23:12:47 9745 zms[18351]: PNC [Could not open codec]
Aug 2 23:12:47 9745 abrt[18353]: saved core dump of pid 18351 (/var/www/cgi-bin/nph-zms) to /var/spool/abrt/ccpp-1312341167-18351.new/coredump (98705408 bytes)
Aug 2 23:12:47 9745 abrtd: Directory 'ccpp-1312341167-18351' creation detected
Aug 2 23:12:47 9745 zms[18354]: INF [Debug Level = 0, Debug Log = <none>]
Aug 2 23:12:47 9745 zms[18354]: INF [New Debug Level = 9, New Debug Log = /var/log/zm/debug/zm_debug.log.18354]
Aug 2 23:12:47 9745 zms[18354]: WAR [Could not deduce output format from file extension: using mpeg]
Aug 2 23:12:47 9745 zms[18354]: PNC [Could not open codec]
Aug 2 23:12:47 9745 abrt[18356]: not dumping repeating crash in '/var/www/cgi-bin/nph-zms'
Aug 2 23:12:48 9745 abrtd: Executable '/var/www/cgi-bin/nph-zms' doesn't belong to any package
Aug 2 23:12:48 9745 abrtd: Corrupted or bad crash /var/spool/abrt/ccpp-1312341167-18351 (res:4), deleting
I've bolded what look like the interesting parts...

I also grabbed the very detailed zm_debug.log.18354 and put it here: link removed The beginning and end looking interesting...

That's where I'm at... I'm not a programmer and I'm not sure if the changes I made to configure.ac were correct, but I'm trying my best make progress here and I'm hoping one of the experts can jump in and point me in the right direction. If nothing else, hopefully this post will serve to help folks in the future... Thanks in advance for any assistance provided!

Other pertinent information:

Code: Select all

2.6.35.13-92.fc14.x86_64

ffmpeg version 0.8.git-rpmfusion, Copyright (c) 2000-2011 the FFmpeg developers
  built on Aug  2 2011 17:51:00 with gcc 4.5.1 20100924 (Red Hat 4.5.1-4)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --extra-version=rpmfusion --enable-bzlib --enable-libmp3lame --enable-x11grab --enable-avfilter --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
  libavutil    51. 11. 1 / 51. 11. 1
  libavcodec   53.  9. 0 / 53.  9. 0
  libavformat  53.  6. 0 / 53.  6. 0
  libavdevice  53.  2. 0 / 53.  2. 0
  libavfilter   2. 27. 5 /  2. 27. 5
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Oh yeah.. Forgot to mention.. along the way, I installed the latest version of ffmpeg, as I thought that might have been the problem..
Locked