No sound when transcoding DTS-HD MA
Opened this issue · 3 comments
The problem:
Playing a file with DTS-HD MA it transcodes it into AAC, but there is no sound. Regular DTS 5.1 transcoding works.
Device:
S90C, which don't support DTS.
Media info:
Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn (default)
Metadata:
BPS : 41522231
BPS-eng : 41522231
DURATION : 02:25:21.755000000
DURATION-eng : 02:25:21.755000000
NUMBER_OF_FRAMES: 209113
NUMBER_OF_FRAMES-eng: 209113
NUMBER_OF_BYTES : 45268341078
NUMBER_OF_BYTES-eng: 45268341078
_STATISTICS_WRITING_APP: no_variable_data
_STATISTICS_WRITING_APP-eng: no_variable_data
_STATISTICS_WRITING_DATE_UTC: 1970-01-01 00:00:00
_STATISTICS_WRITING_DATE_UTC-eng: 1970-01-01 00:00:00
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:1(eng): Audio: dts (DTS-HD MA), 48000 Hz, 5.1(side), s32p (24 bit) (default)
Metadata:
BPS : 4000280
BPS-eng : 4000280
DURATION : 02:25:21.760000000
DURATION-eng : 02:25:21.760000000
NUMBER_OF_FRAMES: 817665
NUMBER_OF_FRAMES-eng: 817665
NUMBER_OF_BYTES : 4361186132
NUMBER_OF_BYTES-eng: 4361186132
_STATISTICS_WRITING_APP: no_variable_data
_STATISTICS_WRITING_APP-eng: no_variable_data
_STATISTICS_WRITING_DATE_UTC: 1970-01-01 00:00:00
_STATISTICS_WRITING_DATE_UTC-eng: 1970-01-01 00:00:00
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Transcoding:
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (dts (dca) -> aac (libfdk_aac))
Press [q] to stop, [?] for help
[hls @ 0x635e55617f80] Opening '/mnt/hdds/jellyfin/transcodes/11a7148546b27e57a18d170ced8a0021-1.mp4' for writing
Output #0, hls, to '/mnt/hdds/jellyfin/transcodes/11a7148546b27e57a18d170ced8a0021.m3u8':
Metadata:
encoder : Lavf60.3.100
Stream #0:0: Video: hevc (Main 10) (hvc1 / 0x31637668), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps, 23.98 tbr, 24k tbn (default)
Stream #0:1: Audio: aac, 48000 Hz, 5.1, s16, 640 kb/s (default)
Metadata:
encoder : Lavc60.3.100 libfdk_aac
frame= 0 fps=0.0 q=-1.0 size= 0kB time=-00:00:00.08 bitrate= -0.0kbits/s speed=N/A
[hls @ 0x635e55617f80] Opening '/mnt/hdds/jellyfin/transcodes/11a7148546b27e57a18d170ced8a00210.mp4' for writing
[hls @ 0x635e55617f80] Opening '/mnt/hdds/jellyfin/transcodes/11a7148546b27e57a18d170ced8a00211.mp4' for writing
The audio works if I play in my computers web browser with transcoding
How many audio tracks do you have in this media file?
I had a problem that different audio track was played than selected: #278 (comment)
There are three audio tracks:
Metadata:
BPS : 4000280
BPS-eng : 4000280
DURATION : 02:25:21.760000000
DURATION-eng : 02:25:21.760000000
NUMBER_OF_FRAMES: 817665
NUMBER_OF_FRAMES-eng: 817665
NUMBER_OF_BYTES : 4361186132
NUMBER_OF_BYTES-eng: 4361186132
_STATISTICS_WRITING_APP: no_variable_data
_STATISTICS_WRITING_APP-eng: no_variable_data
_STATISTICS_WRITING_DATE_UTC: 1970-01-01 00:00:00
_STATISTICS_WRITING_DATE_UTC-eng: 1970-01-01 00:00:00
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:2(eng): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
Metadata:
title : Commentary
BPS : 192000
BPS-eng : 192000
DURATION : 02:25:21.728000000
DURATION-eng : 02:25:21.728000000
NUMBER_OF_FRAMES: 272554
NUMBER_OF_FRAMES-eng: 272554
NUMBER_OF_BYTES : 209321472
NUMBER_OF_BYTES-eng: 209321472
_STATISTICS_WRITING_APP: no_variable_data
_STATISTICS_WRITING_APP-eng: no_variable_data
_STATISTICS_WRITING_DATE_UTC: 1970-01-01 00:00:00
_STATISTICS_WRITING_DATE_UTC-eng: 1970-01-01 00:00:00
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:3(eng): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
Metadata:
title : Commentary
BPS : 192000
BPS-eng : 192000
DURATION : 02:25:21.728000000
DURATION-eng : 02:25:21.728000000
NUMBER_OF_FRAMES: 272554
NUMBER_OF_FRAMES-eng: 272554
NUMBER_OF_BYTES : 209321472
NUMBER_OF_BYTES-eng: 209321472
_STATISTICS_WRITING_APP: no_variable_data
_STATISTICS_WRITING_APP-eng: no_variable_data
_STATISTICS_WRITING_DATE_UTC: 1970-01-01 00:00:00
_STATISTICS_WRITING_DATE_UTC-eng: 1970-01-01 00:00:00
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
The other two works fine though to play since they are ac3. How did you determine that it did play another track than it should have? From the logs it looks like it plays the correct one?
Side note after looking through the logs again, I didn't include more than one chunk in the transcoding. I realize now after reading more than one chunk that it says [mp4 @ 0x5dcf7f6a00c0] Packet duration: -16 / dts: 1533936 is out of range
which looks like it might cause the error. So I'm including some more relevant log if there is something I've missed.
Larger transcoding log chunk:
frame= 0 fps=0.0 q=-1.0 size= 0kB time=-00:00:00.08 bitrate= -0.0kbits/s speed=N/A
[hls @ 0x5dcf7ddad380] Opening '/mnt/hdds/jellyfin/transcodes/dd5b797cfbb5383b593661127f0bdd490.mp4' for writing
[hls @ 0x5dcf7ddad380] Opening '/mnt/hdds/jellyfin/transcodes/dd5b797cfbb5383b593661127f0bdd491.mp4' for writing
frame= 546 fps=0.0 q=-1.0 size=N/A time=00:00:00.17 bitrate=N/A speed=0.357x
[hls @ 0x5dcf7ddad380] Opening '/mnt/hdds/jellyfin/transcodes/dd5b797cfbb5383b593661127f0bdd492.mp4' for writing
[mp4 @ 0x5dcf7f6a00c0] Packet duration: -16 / dts: 1533936 is out of range
frame= 963 fps=962 q=-1.0 size=N/A time=00:00:17.45 bitrate=N/A speed=17.4x
[hls @ 0x5dcf7ddad380] Opening '/mnt/hdds/jellyfin/transcodes/dd5b797cfbb5383b593661127f0bdd493.mp4' for writing
[hls @ 0x5dcf7ddad380] Opening '/mnt/hdds/jellyfin/transcodes/dd5b797cfbb5383b593661127f0bdd494.mp4' for writing
[mp4 @ 0x5dcf7f6a00c0] Packet duration: -16 / dts: 2134992 is out of range
[hls @ 0x5dcf7ddad380] Opening '/mnt/hdds/jellyfin/transcodes/dd5b797cfbb5383b593661127f0bdd495.mp4' for writing
[mp4 @ 0x5dcf7f6a00c0] Packet duration: -16 / dts: 2615256 is out of range
frame= 1348 fps=898 q=-1.0 size=N/A time=00:00:33.47 bitrate=N/A speed=22.3x
[hls @ 0x5dcf7ddad380] Opening '/mnt/hdds/jellyfin/transcodes/dd5b797cfbb5383b593661127f0bdd496.mp4' for writing
[mp4 @ 0x5dcf7f6a00c0] Packet duration: -16 / dts: 2722776 is out of range
[hls @ 0x5dcf7ddad380] Opening '/mnt/hdds/jellyfin/transcodes/dd5b797cfbb5383b593661127f0bdd497.mp4' for writing
File listed at the top:
{"Protocol":0,"Id":"98b05e095469015d299f1e934183b554","Path":"/mnt/hdds/movies/TotallyLegitMovie.mkv","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mkv","Size":50583155056,"Name":"TotallyLegitMovie","IsRemote":false,"ETag":"9c502bed2c68ced28a316b5554a0dbf4","RunTimeTicks":87217600000,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"OpenToken":null,"RequiresClosing":false,"LiveStreamId":null,"BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":0,"IsoType":null,"Video3DFormat":null,"MediaStreams":
Video codec as listed at the top:
{"Codec":"hevc","CodecTag":null,"Language":null,"ColorRange":null,"ColorSpace":"bt2020nc","ColorTransfer":"smpte2084","ColorPrimaries":"bt2020","DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":2,"VideoRangeType":2,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"LocalizedHearingImpaired":null,"DisplayTitle":"4K HEVC HDR","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":null,"BitRate":46397199,"BitDepth":10,"RefFrames":1,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":2160,"Width":3840,"AverageFrameRate":23.976025,"RealFrameRate":23.976025,"Profile":"Main 10","Type":1,"AspectRatio":"16:9","Index":1,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":"yuv420p10le","Level":153,"IsAnamorphic":false}
Audio codec as listed at the top:
{"Codec":"dts","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":"Default","LocalizedForced":null,"LocalizedExternal":"External","LocalizedHearingImpaired":null,"DisplayTitle":"English - DTS-HD MA - 5.1 - Default","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":"5.1","BitRate":4000280,"BitDepth":24,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":"DTS-HD MA","Type":0,"AspectRatio":null,"Index":2,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},
FFmpeg stuff:
/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -ss 00:00:55.054 -noaccurate_seek -fflags +genpts -i file:"/mnt/hdds/movies/TotallyLegitMovie.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -tag:v:0 hvc1 -bsf:v hevc_mp4toannexb -start_at_zero -codec:a:0 libfdk_aac -ac 6 -ab 640000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type fmp4 -hls_fmp4_init_filename "5fd296b7c232ab63a5968f0b3669a853-1.mp4" -start_number 6 -hls_segment_filename "/mnt/hdds/jellyfin/transcodes/5fd296b7c232ab63a5968f0b3669a853%d.mp4" -hls_playlist_type vod -hls_list_size 0 -y "/mnt/hdds/jellyfin/transcodes/5fd296b7c232ab63a5968f0b3669a853.m3u8"
ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12 (Debian 12.2.0-14)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --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-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 58. 2.100 / 58. 2.100
libavcodec 60. 3.100 / 60. 3.100
libavformat 60. 3.100 / 60. 3.100
libavdevice 60. 1.100 / 60. 1.100
libavfilter 9. 3.100 / 9. 3.100
libswscale 7. 1.100 / 7. 1.100
libswresample 4. 10.100 / 4. 10.100
libpostproc 57. 1.100 / 57. 1.100
Input #0, matroska,webm, from 'file:/mnt/hdds/movies/TotallyLegitMovie.mkv':
...
I've managed to find a workaround to get sound. I use PGS subtitles. Without subtitles or with SRT subtitles I do not get sound. However in other movies using DTS-HD MA, both 5.1 and 7.1, it works without subs or with SRT subs. The issue seems to be this movie.
The logs for the working transcoding:
Stream mapping:
Stream #0:0 (hevc) -> setparams:default (graph 0)
Stream #0:15 (pgssub) -> scale:default (graph 0)
overlay_qsv:default (graph 0) -> Stream #0:0 (hevc_qsv)
Stream #0:1 -> #0:1 (dts (dca) -> aac (libfdk_aac))
Press [q] to stop, [?] for help
[matroska,webm @ 0x6537de19ddc0] sub2video: using 3840x2160 canvas
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
[hls @ 0x6537e144cdc0] Opening '/mnt/hdds/jellyfin/transcodes/15789d65edc93e63ece649781222e5de-1.mp4' for writing
Output #0, hls, to '/mnt/hdds/jellyfin/transcodes/15789d65edc93e63ece649781222e5de.m3u8':
Metadata:
encoder : Lavf60.3.100
Stream #0:0: Video: hevc (hvc1 / 0x31637668), qsv(tv, bt709, progressive), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 46397 kb/s, 23.98 fps, 24k tbn
Metadata:
encoder : Lavc60.3.100 hevc_qsv
Side data:
cpb: bitrate max/min/avg: 46397199/0/46397199 buffer size: 92794398 vbv_delay: N/A
Stream #0:1: Audio: aac, 48000 Hz, 5.1, s16, 640 kb/s (default)
Metadata:
encoder : Lavc60.3.100 libfdk_aac
frame= 0 fps=0.0 q=0.0 size=N/A time=00:00:00.00 bitrate=N/A speed= 0x
frame= 19 fps=0.0 q=-0.0 size=N/A time=00:00:01.02 bitrate=N/A speed=1.41x
frame= 47 fps= 38 q=-0.0 size=N/A time=00:00:02.24 bitrate=N/A speed=1.82x
frame= 68 fps= 39 q=-0.0 size=N/A time=00:00:03.07 bitrate=N/A speed=1.77x
[hls @ 0x6537e144cdc0] Opening '/mnt/hdds/jellyfin/transcodes/15789d65edc93e63ece649781222e5de0.mp4' for writing
[mp4 @ 0x6537e51071c0] Packet duration: -16 / dts: 138192 is out of range
frame= 82 fps= 36 q=-0.0 size=N/A time=00:00:03.69 bitrate=N/A speed=1.64x
frame= 99 fps= 36 q=-0.0 size=N/A time=00:00:04.30 bitrate=N/A speed=1.56x
frame= 116 fps= 35 q=-0.0 size=N/A time=00:00:05.16 bitrate=N/A speed=1.58x
frame= 133 fps= 35 q=-0.0 size=N/A time=00:00:05.78 bitrate=N/A speed=1.53x
[hls @ 0x6537e144cdc0] Opening '/mnt/hdds/jellyfin/transcodes/15789d65edc93e63ece649781222e5de1.mp4' for writing
Here I get dts out of range as well, so that doesn't seem to be the issue...