[FFmpeg-trac] #10332(undetermined:new): Transcodes using hevc_nvenc not copying audio as expected to the output
FFmpeg
trac at avcodec.org
Sun Apr 23 23:06:04 EEST 2023
#10332: Transcodes using hevc_nvenc not copying audio as expected to the output
-------------------------------------+-------------------------------------
Reporter: Jordan | Type: defect
Fearnley |
Status: new | Priority: minor
Component: | Version: git-
undetermined | master
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
**Summary of the bug:**
Since commit 9a245bdf5d7860b8bc5e5c21a105a075925b719a, transcodes using
`-c:v hevc_nvenc -c:a copy` do not appear to copy over audio in the exact
same manner as it did previously. In some limited playback scenarios, the
resulting transcoded file's audio track can end up not being played at
all.
**How the bug was discovered:**
Audio playback issues were encountered when playing a file via Jellyfin on
an LG TV. I could not reproduce this playback issue on any other client as
impacted transcodes playback fine on players tested on my PC, and even
playback fine when served via Jellyfin on a android client. The impacted
transcodes have all had a source framerate of 23.98fps.
When using `ffprobe -show_streams -select_streams a` to try diagnose the
issue, I observed that when the audio was 'copied' over during the
transcode, any impacted files would have the profile set to `unknown`,
rather than the expected (in this situation) value of `LC`.
Additionally, the `ffprobe` output also indicated that the values for
`duration_ts` & `duration` went from `N/A` in non-impacted files, to the
actual expected values in impacted files.
**Available logfile output:**
https://gist.github.com/fearnlj01/e1a72c2b3aaa9666922bd4106efcb3d8
This gist contains 4x files, as listed below. I can attach these directly
to the bug report directly if need be.
`nvenc-audioprofile-unknown-probe.log` | Impacted transcode, ffprobe audio
stream output
`nvenc-audioprofile-unknown-ffmpeg.log` | Impacted transcode, ffmpeg
output
`nvenc-audioprofile-aac_lc-ffmepg.log` | Non-impacted transcode, ffprobe
audio stream output
`nvenc-audioprofile-aac_lc-probe.log` | Non-impacted transcode, ffmpeg
output
I also have the 30s source file used for the above transcodes which I will
try to attach to the ticket with filename of `nvenc-audioprofile-
source.mkv`.
**Steps for reproduction of the issue:**
Note that the issue seems to only appear when using NVENC, so an
appropriately capable gpu would be required to reproduce. This should, at
the least, be specifically reproducible when using an Nvidia GeForce RTX
3060 Ti.
- Using a build of ffmpeg from before commit
9a245bdf5d7860b8bc5e5c21a105a075925b719a:
{{{ ffmpeg -i nvenc-audioprofile-source.mkv -c:v
hevc_nvenc -c:a copy -y -f matroska output.mkv" }}}
- Using `ffprobe -show_streams -select_streams a output.mkv`, verify that
the output file has the expected encoding profile set for the audio stream
- Using a build of ffmpeg which includes the aforementioned commit:
{{{ ffmpeg -i nvenc-audioprofile-source.mkv -c:v
hevc_nvenc -c:a copy -y -f matroska output.mkv" }}}
- Using `ffprobe -show_streams -select_streams a output.mkv`, verify that
the output file **does not** have the expected encoding profile set for
the audio stream
I am unsure as to what steps can be taken to reproduce the core issue of
the audio track not being used for playback, however I suspect that this
would be out of scope for FFMPEG even if easily reproducible. I would
however expect that `ffprobe` should be able to show the audio encoding
profile not as `unknown`, especially when copying from an AAC source with
profile `LC`.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/10332>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list