TeamNewPipe / NewPipe-legacy

NewPipe with support for older devices
GNU General Public License v3.0
131 stars 36 forks source link

AUDIO CHOPPY ON ANDROID 4.4.3 DEVICE #58

Closed maxproandu closed 3 years ago

maxproandu commented 3 years ago

When we try to play YouTube videos, the playback audio is so choppy it can't be understood. This is on a Kindle Fire HD 7 3rd Generation with the TI OMAP 4470. See info below.

Exception

org.schabi.newpipe.extractor.exceptions.ParsingException: Could not parse json data for comments
    at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeCommentsExtractor.getPage(YoutubeCommentsExtractor.java:97)
    at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeCommentsExtractor.getInitialPage(YoutubeCommentsExtractor.java:52)
    at org.schabi.newpipe.extractor.utils.ExtractorHelper.getItemsPageOrLogError(ExtractorHelper.java:19)
    at org.schabi.newpipe.extractor.comments.CommentsInfo.getInfo(CommentsInfo.java:40)
    at org.schabi.newpipe.extractor.comments.CommentsInfo.getInfo(CommentsInfo.java:25)
    at org.schabi.newpipelegacy.util.ExtractorHelper.lambda$getCommentsInfo$7(ExtractorHelper.java:155)
    at org.schabi.newpipelegacy.util.-$$Lambda$ExtractorHelper$Q3aiO7F5MGsHd2cKQH1lfXvfZpA.call(lambda)
    at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
    at io.reactivex.Single.subscribe(Single.java:3666)
    at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
    at io.reactivex.Single.subscribe(Single.java:3666)
    at io.reactivex.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
    at io.reactivex.Maybe.subscribe(Maybe.java:4290)
    at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
    at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
    at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
    at io.reactivex.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
    at io.reactivex.Flowable.subscribe(Flowable.java:14935)
    at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
    at io.reactivex.Maybe.subscribe(Maybe.java:4290)
    at io.reactivex.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
    at io.reactivex.Single.subscribe(Single.java:3666)
    at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
    at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
    at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
    at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:841)
Caused by: com.grack.nanojson.JsonParserException: Unexpected character: < on line 1, char 1
    at com.grack.nanojson.JsonTokener.createParseException(Unknown Source)
    at com.grack.nanojson.JsonTokener.advanceToToken(Unknown Source)
    at com.grack.nanojson.JsonParser.advanceToken(Unknown Source)
    at com.grack.nanojson.JsonParser.parse(Unknown Source)
    at com.grack.nanojson.JsonParser$JsonParserContext.from(Unknown Source)
    at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeCommentsExtractor.getPage(YoutubeCommentsExtractor.java:95)
    ... 31 more


drogga commented 3 years ago

Hi, your issue \ problem is mainly in using the wrong build for a 4.4+ KitKat, you should use the other main git build, the non-"legacy" one, since you can, there's no reason to use that one instead, which is super outdated btw, we do use it on older \ lower than 4.4 because the main one requires minSDKversion 19 (4.4) and there isn't much choice, other than SkyTube.

It is choppy for you probably because your device can't handle HD WEBM streams, and the only way to watch music videos in HD is 1080p WebM, as 720p MP4 shows a blank\black screen, playing only the audio because for those "dash" is used, as there's no build-in audio in HD music vids. ...tho you can play with the prefered video & audio formats in the settings if you still prefer this build for some unknown reason...

maxproandu commented 3 years ago

We tried the non-"legacy" version of NewPipe first and had the same results.

In BOTH apps, if we go into Settings / Video and audio / Use external video player / and switch it to "on", with some effort you can get most videos to play. To make the video run, you have to press the "play" cue on the video, select a resolution of 720p (nothing else works), and press the small "play" button on the screen again to have the video come up. Most videos play, some have a "blank" screen and no sound. Are we missing a setting to make it more fluid?

We also used SkyTube with the same audio/video stutter problem occurring, but they've included a setting in Preferences that allows you to select Legacy Player (unsupported) that just works without any extra input effort at the video.

Also, NewPipe-legacy needs the YouTube import fix to accept subscription.json files. SkyTube should have their fix posted to F-Droid later this week.

On Sunday, January 10, 2021, drogga notifications@github.com wrote:

Hi, your issue \ problem is mainly in using the wrong build for a 4.4+ KitKat, you should use the other main git build, the non-"legacy" one, since you can, there's no reason to use that one instead, which is super outdated btw, we do use it on older \ lower than 4.4 because the main one requires minSDKversion 19 (4.4) and there isn't much choice, other than SkyTube.

It is choppy for you probably because your device can't handle HD WEBM streams, and the only way to watch music videos in HD is 1080p WebM, as 720p MP4 shows a blank\black screen, playing only the audio because for those "dash" is used, as there's no build-in audio in HD music vids. ...tho you can play with the prefered video & audio formats in the settings if you still prefer this build for some unknown reason...

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/TeamNewPipe/NewPipe-legacy/issues/58#issuecomment-757469034, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARXBXNBEAA4UZDQ32XBDGKDSZGNJNANCNFSM4V4EFTRQ .

friendlyanon commented 3 years ago

4.4 is supported by upstream. Don't use legacy.

drogga commented 3 years ago

@maxproandu Yup, your "brick" can't handle it, try reset\clear the NPL's Data & Cache from the android's application manager settings and don't touch any of its settings, don't import or anything, even uninstall and re-install the app if you have to, but I doubt that it will work. Also better use the git versions, instead of hoping and waiting for the F-Droid build to be updated...

The player that you use in SkyTube is the system's native ExoPlayer, which has the best and most optimized hardware acceleration, but it lacks the palyback speed rate control (and gestures), so it's not surprising that this one works.

BTW - I don't import anything, I search for what I want to watch manually and I'm checking the channels I like for new uploads basically everyday - manually, so IDK about this. PS - Don't be surprised if I delete my comments ;) Also how do you add a label (tag) to your issue (when it's still open) ?, because I couldn't on mine...