It looks like disabling hardware acceleration and not choosing multi-threaded decoding helps with this problem.
see this thread http://xdaforums.com/showthread.php?t=2796356
edit: 6/26/14 - It looks to me like xbmc for ouya does not have this problem with xvid playback with libstagefright turned off (software decoding?) so I am going to try launching xbmc for ouya as an external player and see how that works.
Other than remuxing files into mkv format, I did not find another solution for choppy xvid playback in xbmc gotham 13.1.
Redardless, I posted this info so that there is more information on how to mount a remote share on an android device and have the share visible for android apps.
I ended up using mxplayer android app to launch when playing xvid files, or invoke it manually through the "play using" option in the context menu. Having a mouse handy may be needed to scroll to some options during app setup.
I have my firetv rooted, and as the default launcher following threads on this forum. I installed SSH and use SFTP to put files on my FireTV
This is the only way I could get any app to mount a remote share and have android apps see the share.
The first step is to install mxplayer and the custom codec (I believe this helps with AC3 passthrough)
sites.google.com/site/mxvpen/download - MXPlayer downloads page
I downloaded and installed the second option (free neon edition)
then I downloaded the custom codec (for neon) found in the link at the bottom of the codecs section and followed the directions, putting the file in the data directory.
I put the file in /sdcard/Android/data/ and pointed mxplayer to the file, as per directions in the xda custom codec thread.
wiki.xbmc.org/index.php?title=HOW-TO:Use_external_players_on_Android - HOW-TO: Use External Players on Android
following those directions I made a playercorefactory.xml file and put that in the xbmc userdata directory.
/sdcard/Android/data/org.xbmc.xbmc/files/.xbmc/userdata/
restart XBMC after putting playercorefactory.xml in the userdata directory
The mxplayer would not launch on files using only this method, as the NFS or Samba share I was using was not usefully passed along to mxplayer, so I had to find a way to mount a share in android and use that mountpoint as my video source.
from your terminal on your pc (not using ssh, using adb) - This is for mounting a samba share (windows share). I saw a lot of problems trying to use NFS shares.
replace the IP addresses with your servers IP Address, and username,password
add that video source in XBMC, by navigating to root filesystem, and /mnt/obb/nas
verify that it works by going to video->files and seeing the share
In mxplayer, I had to select Hardware decoding for video, not Hardware+, and Software Decoder for Audio
If XBMC knows the file is xvid video it will launch mxplayer automatically otherwise you can use the context menu and choose mxplayer
caveats:
messing with the settings in mxplayer will cause AC3 streams to not passthrough, but I don't always have the mouse hooked up to navigate to the proper settings and fix them back up, but it looks promising so far. I do have smooth playback for xvid files (avi containers) and passthrough of AC3 audio to my receiver.
I don't believe the mountpoint will survive a reboot at this point, but I believe it would be easy to put a script in an init file somewhere to do this, as long as we find the right file that is invoked after bootup.
navigation using the fire tv remote is OK in mxplayer for basic playback, and disabling subtitles in settings if you have to (I chose a default directory with no subs)
if we use this mountpoint as a media source, scan into the library, and don't make it persistent after reboot, we will have problems. But I have mostly x264 files in my library, and they play fine normally with XBMC so this is only useful for .avi files for me.
If anyone wants to find a way to make the mount persistent after reboot this would help me out. The mounting of remote shares for android apps took a day of googling for me to nail down, not sure if there is an easier way, but nothing else worked.
with mxplayer set to decode files this way, I have trouble playing mkv files (I believe with AC-3) with it but I don't use mxplayer for those files.
UPDATE: I am not able to play files with AC3 and use passthrough without losing seeking function in mxplayer, might try bsplayer next or another android app. The difference as far as the video is concerned is night and day though.
I think with the mount options that I found it would be possible to use CIFS Manager app to automate the mount, but I would probably still have to make the directory before mounting. This is just a temporary solution for me until hopefully we get linux on the fire tv and can solve some of the playback issues I see. I don't wish to re-encode files that I ripped 15 years ago, and merging them in mkv format makes no difference.
see this thread http://xdaforums.com/showthread.php?t=2796356
edit: 6/26/14 - It looks to me like xbmc for ouya does not have this problem with xvid playback with libstagefright turned off (software decoding?) so I am going to try launching xbmc for ouya as an external player and see how that works.
Other than remuxing files into mkv format, I did not find another solution for choppy xvid playback in xbmc gotham 13.1.
Redardless, I posted this info so that there is more information on how to mount a remote share on an android device and have the share visible for android apps.
I ended up using mxplayer android app to launch when playing xvid files, or invoke it manually through the "play using" option in the context menu. Having a mouse handy may be needed to scroll to some options during app setup.
I have my firetv rooted, and as the default launcher following threads on this forum. I installed SSH and use SFTP to put files on my FireTV
This is the only way I could get any app to mount a remote share and have android apps see the share.
The first step is to install mxplayer and the custom codec (I believe this helps with AC3 passthrough)
sites.google.com/site/mxvpen/download - MXPlayer downloads page
I downloaded and installed the second option (free neon edition)
then I downloaded the custom codec (for neon) found in the link at the bottom of the codecs section and followed the directions, putting the file in the data directory.
I put the file in /sdcard/Android/data/ and pointed mxplayer to the file, as per directions in the xda custom codec thread.
wiki.xbmc.org/index.php?title=HOW-TO:Use_external_players_on_Android - HOW-TO: Use External Players on Android
following those directions I made a playercorefactory.xml file and put that in the xbmc userdata directory.
/sdcard/Android/data/org.xbmc.xbmc/files/.xbmc/userdata/
Code:
<playercorefactory>
<players>
<player name="mxplayer" type="ExternalPlayer" audio="false" video="true">
<filename>com.mxtech.videoplayer.ad</filename>
<hidexbmc>true</hidexbmc>
<playcountminimumtime>120</playcountminimumtime>
</player>
</players>
<rules action="prepend">
<rule videocodec="xvid" player="mxplayer"/> <!-- launch mxplayer to playback xvid files if xbmc knows already -->
</rules>
</playercorefactory>
The mxplayer would not launch on files using only this method, as the NFS or Samba share I was using was not usefully passed along to mxplayer, so I had to find a way to mount a share in android and use that mountpoint as my video source.
from your terminal on your pc (not using ssh, using adb) - This is for mounting a samba share (windows share). I saw a lot of problems trying to use NFS shares.
replace the IP addresses with your servers IP Address, and username,password
Code:
adb kill-server
adb start-server
adb connect 192.168.0.xx (put your IP address of your file server here)
adb shell
mkdir /mnt/obb/nas
su
mount -o noperm,unc=\\\\192.168.0.xx\\putsharenamehere,username=putusernamehere,password=putpasswordhere -t cifs none /mnt/obb/nas
verify that it works by going to video->files and seeing the share
In mxplayer, I had to select Hardware decoding for video, not Hardware+, and Software Decoder for Audio
If XBMC knows the file is xvid video it will launch mxplayer automatically otherwise you can use the context menu and choose mxplayer
caveats:
messing with the settings in mxplayer will cause AC3 streams to not passthrough, but I don't always have the mouse hooked up to navigate to the proper settings and fix them back up, but it looks promising so far. I do have smooth playback for xvid files (avi containers) and passthrough of AC3 audio to my receiver.
I don't believe the mountpoint will survive a reboot at this point, but I believe it would be easy to put a script in an init file somewhere to do this, as long as we find the right file that is invoked after bootup.
navigation using the fire tv remote is OK in mxplayer for basic playback, and disabling subtitles in settings if you have to (I chose a default directory with no subs)
if we use this mountpoint as a media source, scan into the library, and don't make it persistent after reboot, we will have problems. But I have mostly x264 files in my library, and they play fine normally with XBMC so this is only useful for .avi files for me.
If anyone wants to find a way to make the mount persistent after reboot this would help me out. The mounting of remote shares for android apps took a day of googling for me to nail down, not sure if there is an easier way, but nothing else worked.
with mxplayer set to decode files this way, I have trouble playing mkv files (I believe with AC-3) with it but I don't use mxplayer for those files.
UPDATE: I am not able to play files with AC3 and use passthrough without losing seeking function in mxplayer, might try bsplayer next or another android app. The difference as far as the video is concerned is night and day though.
I think with the mount options that I found it would be possible to use CIFS Manager app to automate the mount, but I would probably still have to make the directory before mounting. This is just a temporary solution for me until hopefully we get linux on the fire tv and can solve some of the playback issues I see. I don't wish to re-encode files that I ripped 15 years ago, and merging them in mkv format makes no difference.
Last edited: