LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   VLC 2.1.0 - stuttering x264 playback (https://www.linuxquestions.org/questions/slackware-14/vlc-2-1-0-stuttering-x264-playback-4175479311/)

bmarley83 01-20-2014 02:36 AM

Quote:

Originally Posted by comet.berkeley (Post 5101286)
Lately I suspect the problem to be related to decoding the audio codec A52 because when the audio is disabled then there is no stuttering at all on the video MPEG-1/2.

Just out of curiosity and this is probably a stupid question but are you using ffmpeg?

Alien Bob 01-20-2014 03:56 AM

What I am going to do in order to try and resolve this ssue, is downgrade the libdvbpsi library.
You indicate that your playback problems are with digital video streams. When I went from vlc-2.0.8 to vlc-2.1.0 I also upgraded the libdvbpsi library from 0.2.2 to 1.1.0. I noticed that the VideoLAN team still uses the older 0.2.2 library to build their Windows version of the VLC player. Also the release notes state that the API for 1.x has changed with regard to the old 0.2.2. Perhaps this is the root cause.

Once I have a package I'll upload it for testing. Perhaps it will even coincide with the vlc-2.l.3 release in which case I'll just stick libdvbpsi-0.2.2 in.

Eric

aaazen 01-20-2014 05:15 PM

Quote:

Originally Posted by bmarley83 (Post 5101293)
Just out of curiosity and this is probably a stupid question but are you using ffmpeg?

This is a good question.

I tried downgrading the ffmpeg 2.1 in vlc-2.1.2 to ffmpeg 1.2 (23ee00 March 8, 2013) and it made no difference. I also tried dynamically using an external ffmpeg 1.2 (23ee00 March 8, 2013) and that made no difference.

While using the dynamic ffmpeg (FFMPEG_STATIC="NO") I deleted the ffmpeg external package and that made no difference.

So I suspect that ffmpeg is not being used.

Alien Bob 01-21-2014 02:33 AM

In my VLC package, FFMPEG is a crucial component. Most of the decoding and encoding is done by the package's internal ffmpeg libraries. My VLC package does however not use the dynamic libraries of any ffmpeg package which might also be installed on your computer. However there's some A/V formats and ways of accessing data streams which do not depend on the ffmpeg libraries, some of those are a52dec (AC/3 audio), faad (AAC audio), libdvbpsi (digital video stream access), x264 (H.264/MP4 video) etc.

What version of Slackware and what architecture should I create a test VLC package for? I have a working build now, with libdvbpsi downgraded to 0.2.2 and the newest ffmpeg (and libdvdread, libdvdnav) which are also used by the VideoLAN developers for the upcoming VLC 2.1.3 release.

Eric

aaazen 01-21-2014 09:43 AM

Quote:

Originally Posted by Alien Bob (Post 5102038)
What version of Slackware and what architecture should I create a test VLC package for? I have a working build now, with libdvbpsi downgraded to 0.2.2 and the newest ffmpeg (and libdvdread, libdvdnav) which are also used by the VideoLAN developers for the upcoming VLC 2.1.3 release.
Eric

I have two systems, the main one is an AMD 64-bit multi-core Slackware64 current system and the other is an Intel i386 single-core Slackware 14.1-stable system.

Both have Radeon graphics chips. Both work fine with vlc-2.0.9 on all channels and fail to work with vlc-2.1.2 on several channels.

Alien Bob 01-21-2014 09:50 AM

OK, try this one and report your findings please: http://www.slackware.com/~alien/vlc21/x86_64/
Compiled on Slackware64 14.1.

Eric

Edit: No idea why only the .txt file shows up in the browser here, but the direct link to http://www.slackware.com/~alien/vlc2..._64-4alien.txz works.

aaazen 01-21-2014 08:06 PM

Quote:

Originally Posted by Alien Bob (Post 5102241)
OK, try this one and report your findings please: http://www.slackware.com/~alien/vlc21/x86_64/
Compiled on Slackware64 14.1.

Thanks Eric! The link works fine with me. But the new 2.1.2 version 4 works about the same as the 2.1.2 version 3. I still get stuttering on several channels.

One detail I notice with 2.1.2:

1) The "Audio"->"Audio Device" panel is missing the "Default" that
shows up in 2.0.8

So 2.0.8 has 11 choices and 2.1.2 has 10 choices

Again if I select "Audio"->"Audio Device"->"Discard all samples..." then the stuttering stops and the video is very clear.

It looks like an audio issue to me.

For now I'm happy with 2.0.8 and 2.0.9.

Alien Bob 01-22-2014 05:31 AM

I advise you to run a vlc session with "vlc -vvv" and capture the output, then create a new bug ticket in VidaoLAN's bug tracker.

Eric

aaazen 01-22-2014 10:29 AM

Quote:

Originally Posted by Alien Bob (Post 5102796)
I advise you to run a vlc session with "vlc -vvv" and capture the output, then create a new bug ticket in VidaoLAN's bug tracker.

Eric

Before creating a bug ticket I decided to post to the VideoLAN Linux forum first:

https://forum.videolan.org/viewtopic.php?f=13&t=116899

But before capturing the output I had to modify the code in order to set the -vvv option:
Code:

hdhomerun_config_gui/src/Viewer.cpp:

    execlp(ExeName.c_str()
        , ExeName.c_str()
        , "-vvv"
        , "--deinterlace=-1"
        , "udp://@127.0.0.1:5000"
        , (char *)NULL);

Thanks for all your help Eric. In the mean time vlc 2.0.8 and 2.0.9 work fine.

Richard

Alien Bob 01-22-2014 11:56 AM

Quote:

Originally Posted by comet.berkeley (Post 5102960)
But before capturing the output I had to modify the code in order to set the -vvv option:
Code:

hdhomerun_config_gui/src/Viewer.cpp:

    execlp(ExeName.c_str()
        , ExeName.c_str()
        , "-vvv"
        , "--deinterlace=-1"
        , "udp://@127.0.0.1:5000"
        , (char *)NULL);


Huh? THe command "vlc -vvv [optional other parameters or file]" in an X terminal works perfectly fine for me.

Eric

rigelan 01-22-2014 04:31 PM

The program Hdhomerun runs the vlc command and tells the hdhomerun device to stream its video. (It streams over ethernet). hdhomerun calls vlc from within its own programming - so the program itself needs to be adjusted. You don't just open up vlc and connect to it.

rigelan 01-24-2014 10:49 AM

I've found something - I'm using hdhomerun and vlc in combo as well. If I disable the sound, the visual does not stutter - if I make the audio output 2 channel stereo instead of the 5.1 it seems to remove the stutter - does this happen for you as well?

aaazen 01-24-2014 02:53 PM

Quote:

Originally Posted by rigelan (Post 5104484)
I've found something - I'm using hdhomerun and vlc in combo as well. If I disable the sound, the visual does not stutter - if I make the audio output 2 channel stereo instead of the 5.1 it seems to remove the stutter - does this happen for you as well?

Yes, thank you!

Like you if I disable the sound the stuttering stops and now if I set the sound device to
the front speakers, then the stuttering stops too.
(Even though I have no front speakers plugged in.)

I found a way to test without using the hdhomerun_config_gui by using the older hdhomerun_config program in the libhdhomerun/ directory.

Here is a script that works for a single channel 44-3:
Code:

#!/bin/sh
set -x
# >>>> Set these IP addresses to match your setup <<<<<<<
IPC="192.168.1.2"  # IP address of the client machine playing the video
IPS="192.168.1.3"  # IP address of the HDHOMERUN HDHR3-US video server

# >>>> Set these to match the station you wish to view
hdhomerun_config $IPS set /tuner0/channel 44  # or 19 or ...
hdhomerun_config $IPS set /tuner0/program 3

#vlc                                      rtp://@:5000 &
vlc  --deinterlace=-1                  udp://@:5000 &
sleep 3          # give vlc a chance to warm up before starting the server

#hdhomerun_config $IPS set /tuner0/target rtp://$IPC:5000 ttl=64
hdhomerun_config $IPS set /tuner0/target udp://$IPC:5000 ttl=64

The hdhomerun_config_gui uses udp protocol but either udp or rtp protocols works fine in the script.

Documentation for hdhomerun_config can be found here:

http://www.silicondust.co http://www...evelopment.pdf

Alien Bob 01-24-2014 03:08 PM

There's apparently two forms of multichannel audio: Dolby Digital (also called AC3, supported by liba52 in VLC) and DTS Coherent Acoustics (supported by libdca).

I noticed that the MS Windows build of VLC has the following parameter to the internal FFMPEG library avcocec: "--disable-decoder=dca". Apparently ffmpeg is not used then to decode DTS audio, the libdca library is instead linked directly into VLC. The difference with my build is that I do not disable the DTS decoder in my ffmprg libraries, and it is linked into VLC itself as well. Perhaps there is some kind of interference between ffmpeg's DTS decoding capability and the one VLC supports directly?

I can try a build this weekend with "--disable-decoder=dca" added to ffmpeg.

Eric

rigelan 01-24-2014 03:40 PM

Regarding VLC & ffmpeg

Does VLC use a compiled-in ffmpeg library to decode?
Does it only need ffmpeg during compilation?
I use ffmpeg on my system, would this be interfering with the VLC in any way (in the current way it is compiled)?


All times are GMT -5. The time now is 01:27 AM.