Video works on chrome, but not on Android App! - Enissay - 2023-08-21
Hi all,
As the title says: I have a video that works well on chrome browser, but not on my android app (tablet or firestick).
I wonder if anything wrong with it, a missing decoder ?
Worth noting I am deploying Jellyfin on a RaspberyPI 4 using docker, and it has been working fine so far until this video :-/
Please advise.
MediaInfo:
Code: General
Complete name : /mnt/video/blah.mkv
Format : Matroska
Format version : Version 4
File size : 626 MiB
Duration : 25 min 10 s
Overall bit rate : 3 475 kb/s
Encoded date : UTC 2015-07-09 05:17:16
Writing application : mkvmerge v6.9.1 ('Blue Panther') 64bit built on Apr 18 2014 18:23:38
Writing library : libebml v1.3.0 + libmatroska v1.4.1
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High 10@L3.1
Format settings : CABAC / 5 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 5 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 25 min 10 s
Bit rate : 3 182 kb/s
Width : 668 pixels
Height : 558 pixels
Display aspect ratio : 4:3
Original display aspect ratio : 4:3
Frame rate mode : Constant
Frame rate : 50.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 10 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.171
Stream size : 573 MiB (92%)
Writing library : x264 core 146 r2538 121396c
Encoding settings : cabac=1 / ref=5 / deblock=1:-3:-3 / analyse=0x3:0x133 / me=umh / subme=8 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=3 / sliced_threads=0 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=6 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=500 / keyint_min=50 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=16.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Default : Yes
Forced : No
Audio
ID : 2
Format : AC-3
Format/Info : Audio Coding 3
Commercial name : Dolby Digital
Codec ID : A_AC3
Duration : 25 min 10 s
Bit rate mode : Constant
Bit rate : 224 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 48.0 kHz
Frame rate : 31.250 FPS (1536 SPF)
Compression mode : Lossy
Stream size : 40.3 MiB (6%)
Service kind : Complete Main
Default : Yes
Forced : No
RE: Video works on chrome, but not on Android App! - Venson - 2023-08-21
Hey @Enissay
Could you specify what you mean by "works well" and not mean?
RE: Video works on chrome, but not on Android App! - Enissay - 2023-08-21
@Venson,
In details:
Works wellell: the video works fine as expected on chrome only
Not working: 2 cases here:
+ on android tablet, I get a green screen, but I can hear audio
+ on firestick, I get nothing but an error
Checking Jellyfin log, I see the below:
Code: ffmpeg version 5.1.3-Jellyfin Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --toolchain=hardened --enable-cross-compile --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu-
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
Input #0, matroska,webm, from 'file:/mnt/video/blah.mkv':
Metadata:
encoder : libebml v1.3.0 + libmatroska v1.4.1
creation_time : 2014-09-11T06:11:20.000000Z
Duration: 00:29:16.04, start: 0.000000, bitrate: 3574 kb/s
Stream #0:0: Video: h264 (High 10), yuv420p10le(progressive), 688x564 [SAR 12:11 DAR 688:517], SAR 47:43 DAR 4:3, 50 fps, 50 tbr, 1k tbn (default)
Stream #0:1: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s (default)
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_v4l2m2m))
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[h264_v4l2m2m @ 0x55b5760620] Could not find a valid device
[h264_v4l2m2m @ 0x55b5760620] can't configure encoder
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
RE: Video works on chrome, but not on Android App! - Venson - 2023-08-22
Looking at your Log files, to seems like your JF container is not correctly configured to access the Hardware acceleration features of your host.
> [h264_v4l2m2m @ 0x55b5760620] Could not find a valid device
RE: Video works on chrome, but not on Android App! - Enissay - 2023-08-22
I believe the issue is: "Bit depth: 10 bits"
I've got another version of the video using 8Bits and it works fine.
This solves it.
Thank you @Venson for the assistance <3
RE: Video works on chrome, but not on Android App! - bitmap - 2023-08-25
For future reference, High 10 H264 video doesn't have great support with clients, so you're asking for transcoding with that type of file. It was popular with the anime community but you have to jump through some hoops to get it to work. Running an rPi as your server, I'd avoid High 10 h.264 encodes in the future, you'd have far better luck with 10-bit x265 (and maybe even AV1 honestly) as far as compatibility.
|