Page 1 of 1

WDTV but no 360? [soved - UPDATE FFMPEG!]

PostPosted: Sun Oct 27, 2013 1:20 pm
by sleky
Any thoughts why the WD HD TV would see Serviio fine, and my 360 cannot?

RESOLUTION: Update/Reinstalled newest version of ffmpeg.

Re: WDTV but no 360?

PostPosted: Sun Oct 27, 2013 2:29 pm
by sleky
*facepalm* Can I get a delete? The fix was enabling the device. Yeah....

edit:
Let me clarify the issue: I can browse like a champ, just one video type giving me playback problems.

  Code:
2013-10-27 09:32:36,866 ERROR [ResourceTransportRequestHandler] Error while processing resource, sending back 500 error. Message: FFmpeg execution failed
java.io.IOException: FFmpeg execution failed
   at org.serviio.delivery.resource.transcode.FileBasedTranscodingDeliveryStrategy.createInputStream(FileBasedTranscodingDeliveryStrategy.java:49)
   at org.serviio.delivery.resource.transcode.AbstractTranscodingDeliveryEngine.retrieveTranscodedResource(AbstractTranscodingDeliveryEngine.java:134)
   at org.serviio.delivery.resource.AbstractDeliveryEngine.deliver(AbstractDeliveryEngine.java:110)
   at org.serviio.delivery.MediaResourceRetrievalStrategy.retrieveResource(MediaResourceRetrievalStrategy.java:153)
   at org.serviio.delivery.GETMethodProcessor.retrieveResource(GETMethodProcessor.java:121)
   at org.serviio.delivery.GETMethodProcessor.buildDeliveryContainer(GETMethodProcessor.java:48)
   at org.serviio.delivery.AbstractMethodProcessor.handleRequest(AbstractMethodProcessor.java:132)
   at org.serviio.delivery.ResourceDeliveryProcessor.deliverContent(ResourceDeliveryProcessor.java:81)
   at org.serviio.upnp.webserver.ResourceTransportRequestHandler.handleRequest(ResourceTransportRequestHandler.java:86)
   at org.serviio.upnp.webserver.AbstractRequestHandler.handle(AbstractRequestHandler.java:61)
   at org.apache.http.protocol.HttpService.doService(HttpService.java:293)
   at org.serviio.upnp.webserver.ServiioHttpService.doService(ServiioHttpService.java:77)
   at org.apache.http.protocol.HttpService.handleRequest(HttpService.java:212)
   at org.serviio.upnp.webserver.WebServer$WorkerThread.run(WebServer.java:192)


  Code:
2013-10-27 09:32:26,899 WARN  [ProcessExecutor] Process /usr/bin/ffmpeg has a return code of 1! This is a possible error. Detailed output follows.
Metadata:
creation_time   : 2013-05-10 15:48:08
handler_name    : GPAC ISO Audio Handler
[AVFilterGraph @ 0x8bd000] No such filter: 'subtitles'
Error opening filters!


http://blogs.msdn.com/b/xboxteam/archiv ... k-faq.aspx

So would this be simply resolved by playing a format it can recognize?

Re: WDTV but no 360?

PostPosted: Sun Oct 27, 2013 3:25 pm
by sleky
Logs... Everything plays fine but Thor.

Re: WDTV but no 360?

PostPosted: Sun Oct 27, 2013 10:23 pm
by zip
Looks like an old version of FFmpeg..?

Re: WDTV but no 360?

PostPosted: Mon Oct 28, 2013 2:06 am
by sleky
Wow, it is a lil old...

  Code:
root@nix-01:~# ffmpeg -version
ffmpeg version 1.0.8
built on Sep 12 2013 11:57:09 with gcc 4.7 (Debian 4.7.2-5)
configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/x86_64-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libfdk-aac --enable-libdc1394 --disable-altivec --disable-armv5te --disable-armv6 --disable-vis --shlibdir=/usr/lib/x86_64-linux-gnu
libavutil      51. 73.101 / 51. 73.101
libavcodec     54. 59.100 / 54. 59.100
libavformat    54. 29.104 / 54. 29.104
libavdevice    54.  2.101 / 54.  2.101
libavfilter     3. 17.100 /  3. 17.100
libswscale      2.  1.101 /  2.  1.101
libswresample   0. 15.100 /  0. 15.100
libpostproc    52.  0.100 / 52.  0.100


I know that getting this to work with this ffmpeg was a PITA. I'll attempt an upgdate.

edit: well...

  Code:
root@nix-01:/etc/apt/sources.list.d# apt-get install ffmpeg
Reading package lists... Done
Building dependency tree       
Reading state information... Done
ffmpeg is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@nix-01:/etc/apt/sources.list.d# cat debian-multimedia.list
deb http://www.deb-multimedia.org wheezy main non-free

Re: WDTV but no 360?

PostPosted: Mon Oct 28, 2013 10:18 am
by zip
Latest is 2.1. You might have to build one yourself.

Re: WDTV but no 360?

PostPosted: Mon Oct 28, 2013 12:18 pm
by sleky
No mights about it... I didn't want to bust serviio as I'm in bed trying to finish up Season3 of Breaking Bad. ;D (Priorities!) Today, I'm going to be working on ffmpeg. I'm working (mostly) on the version above, but yup. I have work. I'll post the my results. Thanks again as always Zip!!!

Re: WDTV but no 360?

PostPosted: Mon Oct 28, 2013 2:43 pm
by sleky
  Code:
root@nix-01:~/ffmpeg_sources/ffmpeg# ffmpeg -version
ffmpeg version 1.0.8
built on Sep 12 2013 11:57:09 with gcc 4.7 (Debian 4.7.2-5)
configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/x86_64-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libfdk-aac --enable-libdc1394 --disable-altivec --disable-armv5te --disable-armv6 --disable-vis --shlibdir=/usr/lib/x86_64-linux-gnu
libavutil      51. 73.101 / 51. 73.101
libavcodec     54. 59.100 / 54. 59.100
libavformat    54. 29.104 / 54. 29.104
libavdevice    54.  2.101 / 54.  2.101
libavfilter     3. 17.100 /  3. 17.100
libswscale      2.  1.101 /  2.  1.101
libswresample   0. 15.100 /  0. 15.100
libpostproc    52.  0.100 / 52.  0.100


That is following the instructions for installing and upgrading... https://trac.ffmpeg.org/wiki/UbuntuCompilationGuide
Even used the latest and greatest version by using git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg when doing the ffmpeg install. Still only giving me 1.0.8. Going to try and completely removing ffmpeg and compiling from scratch. Again. This is really odd. Anyone else having ffmpeg issues on Debian wheezy, headless!?!?!

Re: WDTV but no 360?

PostPosted: Mon Oct 28, 2013 3:22 pm
by will
ffmpeg != ./ffmpeg. Using ffmpeg will run the ffmpeg on your path, using ./ffmpeg will use the one in the current directory.

To see the version of the one you build, run
  Code:
./ffmpeg -version
from
  Code:
~/ffmpeg_sources/ffmpeg
or just run
  Code:
~/ffmpeg_sources/ffmpeg/ffmpeg -version


To tell Serviio to use the new one, add
  Code:
-Dffmpeg.location=/home/USERNAME/ffmpeg_sources/ffmpeg/ffmpeg
to the JAVA_OPTS line in serviio/bin/serviio.sh

Re: WDTV but no 360?

PostPosted: Mon Oct 28, 2013 5:41 pm
by sleky
WILL!!! *facepalm again* Aiight. Here is the exact steps I personally took to get it going (again, on the newest ffmpeg as of 10/28/13). This was after all the apt-get remove --purge commands have been run, rebooted a few times… These aren't my steps, just tweaking from the steps here: https://trac.ffmpeg.org/wiki/UbuntuCompilationGuide to meet my needs.

Dependencies:
  Code:
apt-get update
apt-get -y install autoconf automake build-essential git libass-dev libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev
mkdir ~/ffmpeg_sources


yasm
  Code:
cd ~/ffmpeg_sources
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
tar xzvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install
make distclean
. ~/.profile


x264
  Code:
cd ~/ffmpeg_sources
git clone --depth 1 git://git.videolan.org/x264.git
cd x264
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make
make install
make distclean


fdk-aac
  Code:
cd ~/ffmpeg_sources
git clone --depth 1 git://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean


libmp3lame
  Code:
cd ~/ffmpeg_sources
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --prefix="$HOME/ffmpeg_build" --enable-nasm --disable-shared
make
make install
make distclean


libopus
  Code:
cd ~/ffmpeg_sources
wget http://downloads.xiph.org/releases/opus/opus-1.0.3.tar.gz
tar xzvf opus-1.0.3.tar.gz
cd opus-1.0.3
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean


libvpx
  Code:
cd ~/ffmpeg_sources
git clone --depth 1 http://git.chromium.org/webm/libvpx.git
cd libvpx
./configure --prefix="$HOME/ffmpeg_build" --disable-examples
make
make install
make clean


FFMPEG!!!!!!!!!! Keynote changes: bindir is changed and I used a different git command (to get latest)
  Code:
cd ~/ffmpeg_sources
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"
export PKG_CONFIG_PATH
./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="/usr/bin" --extra-libs="-ldl" --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree
make
make install
make distclean
hash -r


  Code:
root@nix-01:~# ffmpeg -version
ffmpeg version N-57549-g269b3c8
built on Oct 28 2013 12:19:55 with gcc 4.7 (Debian 4.7.2-5)
configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/usr/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree
libavutil      52. 48.100 / 52. 48.100
libavcodec     55. 39.100 / 55. 39.100
libavformat    55. 19.104 / 55. 19.104
libavdevice    55.  5.100 / 55.  5.100
libavfilter     3. 90.100 /  3. 90.100
libswscale      2.  5.101 /  2.  5.101
libswresample   0. 17.104 /  0. 17.104
libpostproc    52.  3.100 / 52.  3.100


That serviio.sh for me doesn't seem like it'd be called by the service, so I don't think this is what I need to be changing it:
  Code:
root@nix-01:/# find / -iname serviio.sh
/usr/share/doc/serviio/examples/serviio.sh


So checking /etc/init.d/serviio - verifying /usr/bin is in there:
  Code:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          serviio
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs $remote_fs $network
# Should-Start:      $named
# Should-Stop:       $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start Serviio.
# Description:       Start Serviio media server.
### END INIT INFO

# Author: Ingo Theiss <debian@i-matrixx.de>

# Do NOT "set -e"

PATH=/bin:/usr/bin:/sbin:/usr/sbin
NAME="serviio"
DESC="Serviio media server"
DEFAULT=/etc/default/$NAME

if [ `id -u` -ne 0 ]; then
   echo "You need root privileges to run this script"
    exit 1
fi
 
# Make sure Serviio is started with system locale
if [ -r /etc/default/locale ]; then
   . /etc/default/locale
   export LANG
fi

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
. /lib/lsb/init-functions

# The following variables can be overwritten in $DEFAULT

# Run Serviio as this user ID and group ID
SERVIIO_USER=serviio
SERVIIO_GROUP=serviio

# Path of FFmpeg executable
FFMPEG_LOCATION=/usr/bin/ffmpeg

# Default transcoding folder
SERVIIO_DEFAULT_TRANSCODE_DIR=/tmp

# Default Java options
if [ -z "$JAVA_OPTS" ]; then
   JAVA_OPTS="-Xmx512M -Xms20M -XX:+UseParNewGC -XX:MinHeapFreeRatio=10 \
               -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true"
fi

# End of variables that can be overwritten in $DEFAULT

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Define other required variables

# Default Java binary
JAVA_BIN=$(which java)

# Pidfile
PIDFILE=/var/run/$NAME.pid

# Serviio home (@see serviio.home)
SERVIIO_HOME=/var/lib/serviio

# Setup the classpath
SERVIIO_CLASS_PATH="/usr/share/serviio/lib/*:$SERVIIO_HOME/config"

# Serviio main class
SERVIIO_MAIN_CLASS="org.serviio.MediaServer"

# Setup Serviio specific properties
JAVA_OPTS="$JAVA_OPTS -Dderby.system.home=$SERVIIO_HOME/library -Dserviio.home=$SERVIIO_HOME \
          -Dffmpeg.location=$FFMPEG_LOCATION -Dserviio.defaultTranscodeFolder=$SERVIIO_DEFAULT_TRANSCODE_DIR"

case "$1" in
    start)
       if [ -z "$JAVA_BIN" ]; then
          log_failure_msg "no JAVA found - please install a Java runtime"
          exit 1
       fi

       log_daemon_msg "Starting $DESC" "$NAME"
       if start-stop-daemon --start -q -b -m -p $PIDFILE \
            -c $SERVIIO_USER -u $SERVIIO_USER -g $SERVIIO_GROUP -x "$JAVA_BIN" \
            -- $JAVA_OPTS -cp $SERVIIO_CLASS_PATH $SERVIIO_MAIN_CLASS \
            >/dev/null; then
            sleep 3
            if start-stop-daemon --test --start -q -b -m -p $PIDFILE \
                -u $SERVIIO_USER -x "$JAVA_BIN" \
                -- $JAVA_OPTS -cp $SERVIIO_CLASS_PATH $SERVIIO_MAIN_CLASS \
                >/dev/null; then
                if [ -f $PIDFILE ]; then
                    rm -f $PIDFILE
                fi
                log_end_msg 1
            else
              log_end_msg 0
            fi
       else
           log_progress_msg "(already running)"
          log_end_msg 0
       fi
   ;;
    stop)
       log_daemon_msg "Stopping $DESC" "$NAME"

       set +e
       if [ -f "$PIDFILE" ]; then
          start-stop-daemon --stop -p $PIDFILE \
                -u $SERVIIO_USER \
                -R TERM/20/KILL/5 >/dev/null
          if [ $? -eq 1 ]; then
             log_progress_msg "$DESC is not running but pid file exists, cleaning up"
          elif [ $? -eq 3 ]; then
             PID="`cat $PIDFILE`"
             log_failure_msg "Failed to stop $NAME (pid $PID)"
         exit 1
      fi
          rm -f "$PIDFILE"
       else
          log_progress_msg "(not running)"
       fi
       log_end_msg 0
       set -e
   ;;
    status)
        set +e
        start-stop-daemon --test --start -p $PIDFILE \
            -u $SERVIIO_USER -x $JAVA_BIN \
            -- $JAVA_OPTS -cp $SERVIIO_CLASS_PATH $SERVIIO_MAIN_CLASS \
            >/dev/null 2>&1
        if [ "$?" = "0" ]; then
          if [ -f "$PIDFILE" ]; then
              log_success_msg "$DESC is not running, but pid file exists."
             exit 1
          else
              log_success_msg "$DESC is not running."
             exit 3
          fi
       else
          log_success_msg "$DESC is running with pid `cat $PIDFILE`"
       fi
       set -e
    ;;
    restart)
       if [ -f "$PIDFILE" ]; then
          $0 stop
          sleep 1
       fi
       $0 start
   ;;
    try-restart)
        if start-stop-daemon --test --start -p "$PIDFILE" \
            -u $SERVIIO_USER -x $JAVA_BIN \
            -- $JAVA_OPTS -cp "$SERVIIO_CLASS_PATH" $SERVIIO_MAIN_CLASS \
            >/dev/null; then
          $0 start
       fi
    ;;
    *)
       log_success_msg "Usage: $0 {start|stop|restart|try-restart|status}"
       exit 1
   ;;
esac

exit 0



Here we go…
  Code:
root@nix-01:/var/log/serviio# service serviio start
[ ok ] Starting Serviio media server: serviio.
root@nix-01:/var/log/serviio# service serviio status
[ ok ] Serviio media server is running with pid 8358.


Taking a look at the log, you can verify. But just take my word. Thor play'd like a champ on my 360! I was on a very old version for a minute. Thanks guys for helping out!!!!