#10065 closed defect (invalid)
Gap in video by -c copy in mkv opus
| Reported by: | yumu | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | avformat |
| Version: | unspecified | Keywords: | mkv opus |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
Summary of the bug:
Each time I copy the mkv container containing opus with -c copy, the video is out of sync with the audio.
So every time I set metadata or attach a file, the video shifts. This is unreasonable.
How to reproduce:
- Make a video (maybe even an existing one)
ffmpeg -f lavfi -i smptehdbars=1920x1080:d=10 -f lavfi -i sine=frequency=1000:d=10 "a.mp4"
- Convert audio to opus and store in mkv container
ffmpeg -i "a.mp4" -c:v copy -c:a libopus "a_opus.mkv"
- Copy
ffmpeg -i "a_opus.mkv" -c copy "a_opus_copy.mkv"
Comparing a_opus.mkv and a_opus_copy.mkv in ffprobe, start_pts is increased by +7, start_time by +0.007, and TAG:DURATION by +0.007.
> ffprobe -hide_banner -show_streams a_opus.mkv
Input #0, matroska,webm, from 'a_opus.mkv':
Metadata:
COMPATIBLE_BRANDS: isomiso2avc1mp41
MAJOR_BRAND : isom
MINOR_VERSION : 512
ENCODER : Lavf59.34.101
Duration: 00:00:10.02, start: -0.007000, bitrate: 114 kb/s
Stream #0:0: Video: h264 (High), yuv420p(tv, bt709/unknown/unknown, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn (default)
Metadata:
HANDLER_NAME : VideoHandler
VENDOR_ID : [0][0][0][0]
ENCODER : Lavc59.54.100 libx264
DURATION : 00:00:10.000000000
Stream #0:1: Audio: opus, 48000 Hz, mono, fltp (default)
Metadata:
HANDLER_NAME : SoundHandler
VENDOR_ID : [0][0][0][0]
ENCODER : Lavc59.54.100 libopus
DURATION : 00:00:10.015000000
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=High
codec_type=video
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
width=1920
height=1080
coded_width=1920
coded_height=1080
closed_captions=0
film_grain=0
has_b_frames=2
sample_aspect_ratio=1:1
display_aspect_ratio=16:9
pix_fmt=yuv420p
level=40
color_range=tv
color_space=bt709
color_transfer=unknown
color_primaries=unknown
chroma_location=left
field_order=progressive
refs=1
is_avc=true
nal_length_size=4
id=N/A
r_frame_rate=25/1
avg_frame_rate=25/1
time_base=1/1000
start_pts=0
start_time=0.000000
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
extradata_size=51
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:HANDLER_NAME=VideoHandler
TAG:VENDOR_ID=[0][0][0][0]
TAG:ENCODER=Lavc59.54.100 libx264
TAG:DURATION=00:00:10.000000000
[/STREAM]
[STREAM]
index=1
codec_name=opus
codec_long_name=Opus (Opus Interactive Audio Codec)
profile=unknown
codec_type=audio
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
sample_fmt=fltp
sample_rate=48000
channels=1
channel_layout=mono
bits_per_sample=0
initial_padding=312
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/1000
start_pts=-7
start_time=-0.007000
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
extradata_size=19
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:HANDLER_NAME=SoundHandler
TAG:VENDOR_ID=[0][0][0][0]
TAG:ENCODER=Lavc59.54.100 libopus
TAG:DURATION=00:00:10.015000000
[/STREAM]
> ffprobe -hide_banner -show_streams a_opus_copy.mkv
Input #0, matroska,webm, from 'a_opus_copy.mkv':
Metadata:
MINOR_VERSION : 512
COMPATIBLE_BRANDS: isomiso2avc1mp41
MAJOR_BRAND : isom
ENCODER : Lavf59.34.101
Duration: 00:00:10.03, start: 0.000000, bitrate: 114 kb/s
Stream #0:0: Video: h264 (High), yuv420p(tv, bt709/unknown/unknown, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn (default)
Metadata:
HANDLER_NAME : VideoHandler
VENDOR_ID : [0][0][0][0]
ENCODER : Lavc59.54.100 libx264
DURATION : 00:00:10.007000000
Stream #0:1: Audio: opus, 48000 Hz, mono, fltp (default)
Metadata:
HANDLER_NAME : SoundHandler
VENDOR_ID : [0][0][0][0]
ENCODER : Lavc59.54.100 libopus
DURATION : 00:00:10.028000000
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=High
codec_type=video
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
width=1920
height=1080
coded_width=1920
coded_height=1080
closed_captions=0
film_grain=0
has_b_frames=2
sample_aspect_ratio=1:1
display_aspect_ratio=16:9
pix_fmt=yuv420p
level=40
color_range=tv
color_space=bt709
color_transfer=unknown
color_primaries=unknown
chroma_location=left
field_order=progressive
refs=1
is_avc=true
nal_length_size=4
id=N/A
r_frame_rate=25/1
avg_frame_rate=25/1
time_base=1/1000
start_pts=7
start_time=0.007000
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
extradata_size=51
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:HANDLER_NAME=VideoHandler
TAG:VENDOR_ID=[0][0][0][0]
TAG:ENCODER=Lavc59.54.100 libx264
TAG:DURATION=00:00:10.007000000
[/STREAM]
[STREAM]
index=1
codec_name=opus
codec_long_name=Opus (Opus Interactive Audio Codec)
profile=unknown
codec_type=audio
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
sample_fmt=fltp
sample_rate=48000
channels=1
channel_layout=mono
bits_per_sample=0
initial_padding=312
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/1000
start_pts=0
start_time=0.000000
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
extradata_size=19
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:HANDLER_NAME=SoundHandler
TAG:VENDOR_ID=[0][0][0][0]
TAG:ENCODER=Lavc59.54.100 libopus
TAG:DURATION=00:00:10.028000000
[/STREAM]
Each time I repeated the copy in step 3, the video shifted in the same way, and VLC played the video later than the audio.
Perhaps the following three conditions are necessary.
- Video and audio streams are included.
- The audio stream is opus (did not reproduce with mp3, aac, vorbis)
- Container is mkv or webm (did not reproduce with ogg)
Version of ffmpeg (on Windows) (downloaded from https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2022-11-22-12-40/ffmpeg-N-109165-g9f5a9a7499-win64-gpl.zip)
> ffmpeg -version ffmpeg version N-109165-g9f5a9a7499-20221122 Copyright (c) 2000-2022 the FFmpeg developers built with gcc 12.2.0 (crosstool-NG 1.25.0.90_cf9beb1) configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --disable-libmfx --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --disable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20221122 libavutil 57. 43.100 / 57. 43.100 libavcodec 59. 54.100 / 59. 54.100 libavformat 59. 34.101 / 59. 34.101 libavdevice 59. 8.101 / 59. 8.101 libavfilter 8. 50.101 / 8. 50.101 libswscale 6. 8.112 / 6. 8.112 libswresample 4. 9.100 / 4. 9.100 libpostproc 56. 7.100 / 56. 7.100
Also reproduced on Ubuntu 20.04.5 (7:4.2.7-0ubuntu0.1).
Change History (8)
follow-up: 2 comment:1 by , 3 years ago
comment:2 by , 3 years ago
| Keywords: | mkv opus added |
|---|
Replying to mkver:
Did you do all your tests with git-master? There have been changes since the last release in this area and with these changes there is no longer desynchronisation between audio and video and the shift only happens once (namely when creating a_opus_copy.mkv, not when remuxing it). This last shift can be avoided by using the -copyts option to create a_opus_copy.mkv.
I did all my tests with the build on Nov 22nd at 12:00 UTC. So I don't think it is strictly git-master. However, I chose git-master because it was the closest option.
When I copy using the -copyts option, the video does not shift anymore. Thank you!
By the way, could you please explain what is happening? Without the -copyts option, what happens inside ffmpeg to cause the video to shift?
I could see in the documentation that it is through demuxer and muxer, but I couldn't figure out what exactly demuxer and muxer are doing.
PS: How do I fix a mkv that already has video shifted?
follow-up: 4 comment:3 by , 3 years ago
- Your ticket contains several tests and some additional claims, namely that each time you repeat step 3, audio and video go out of sync. Did you verify that master still behaves as your additional claims say? Because I can no longer reproduce this.
- When I say "master", I mean anything recent enough to include 8913539a5d2a81a77980b45455b1eb144827fd96, which a build from November (using the then-master) is.
- copyts is not a muxer/demuxer option, it is an option for the ffmpeg cli tool.
- Encoding audio often involves "encoder delay", i.e. if one decodes the encoded output, there is no one-to-one correspondence of the input samples (fed to the encoder) to the samples output by the decoder. Instead there are some padding samples at the beginning and only afterwards do output samples correspond to input samples (in a one-to-one manner). The libopus encoder uses 312 padding samples (corresponding to 6.5ms at 48kHz) by default (see initial_padding=312 in your ffprobe output). The player needs to discard these samples for accurate playback.
Matroska typically only supports nonnegative timestamps; with one exception: It has a header field "CodecDelay" that allows to support negative timestamps if the data with negative timestamps corresponds to encoder delay (i.e. if the data with negative timestamps are to be discarded lateron). This is Matroska-internal, i.e. the audio packet leaves the demuxer with a negative timestamp (and the stream contains the information that the first 312 samples are padding samples).
The ffmpeg cli tool likes to normalize streams so that they start at zero (without breaking the relative sync of them). So if the first audio packet has a timestamp of -7ms (-6.5ms rounded to ms precision), it will shift all streams by 7ms, which happens when creating a_opus_copy.mkv. It won't do this when using -copyts.
comment:4 by , 3 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
| Version: | git-master → 5.1.2 |
Replying to mkver:
Oh, it was 5.1.2 that only the video shifted. I verified it again and in master, as you said, both video and audio were only shifted by 7 ms on the first copy. The output of ffprobe in my text did the same thing. I was mainly using 5.1.2, so I was mistaken. My apologies. I will fix the version of this ticket.
I see, the audio needs an "encoder delay" (silent part) first. So ffmpeg needs to shift the audio forward or the video backward for this delay.
5.1.2 behaved quite strangely.
Thank you so much mkver.
comment:5 by , 3 years ago
| Component: | ffmpeg → avformat |
|---|---|
| Resolution: | fixed → invalid |
| Version: | 5.1.2 → unspecified |
comment:6 by , 3 years ago
| Version: | unspecified → 5.1.2 |
|---|
The output of ffprobe in the case of 5.1.2 is shown below. The audio DURATION is also increased by 0.006, but this only occurs on the first copy, and only the video is shifted on subsequent copies.
> ffprobe -hide_banner -show_streams a_opus.mkv
Input #0, matroska,webm, from 'a_opus.mkv':
Metadata:
COMPATIBLE_BRANDS: isomiso2avc1mp41
MAJOR_BRAND : isom
MINOR_VERSION : 512
ENCODER : Lavf59.27.100
Duration: 00:00:10.02, start: -0.007000, bitrate: 114 kb/s
Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn (default)
Metadata:
HANDLER_NAME : VideoHandler
VENDOR_ID : [0][0][0][0]
ENCODER : Lavc59.37.100 libx264
DURATION : 00:00:10.007000000
Stream #0:1: Audio: opus, 48000 Hz, mono, fltp (default)
Metadata:
HANDLER_NAME : SoundHandler
VENDOR_ID : [0][0][0][0]
ENCODER : Lavc59.37.100 libopus
DURATION : 00:00:10.015000000
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=High
codec_type=video
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
width=1920
height=1080
coded_width=1920
coded_height=1080
closed_captions=0
film_grain=0
has_b_frames=2
sample_aspect_ratio=1:1
display_aspect_ratio=16:9
pix_fmt=yuv420p
level=40
color_range=unknown
color_space=unknown
color_transfer=unknown
color_primaries=unknown
chroma_location=left
field_order=progressive
refs=1
is_avc=true
nal_length_size=4
id=N/A
r_frame_rate=25/1
avg_frame_rate=25/1
time_base=1/1000
start_pts=7
start_time=0.007000
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
extradata_size=48
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:HANDLER_NAME=VideoHandler
TAG:VENDOR_ID=[0][0][0][0]
TAG:ENCODER=Lavc59.37.100 libx264
TAG:DURATION=00:00:10.007000000
[/STREAM]
[STREAM]
index=1
codec_name=opus
codec_long_name=Opus (Opus Interactive Audio Codec)
profile=unknown
codec_type=audio
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
sample_fmt=fltp
sample_rate=48000
channels=1
channel_layout=mono
bits_per_sample=0
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/1000
start_pts=-7
start_time=-0.007000
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
extradata_size=19
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:HANDLER_NAME=SoundHandler
TAG:VENDOR_ID=[0][0][0][0]
TAG:ENCODER=Lavc59.37.100 libopus
TAG:DURATION=00:00:10.015000000
[/STREAM]
> ffprobe -hide_banner -show_streams a_opus_copy.mkv
Input #0, matroska,webm, from 'a_opus_copy.mkv':
Metadata:
MINOR_VERSION : 512
COMPATIBLE_BRANDS: isomiso2avc1mp41
MAJOR_BRAND : isom
ENCODER : Lavf59.27.100
Duration: 00:00:10.02, start: -0.007000, bitrate: 114 kb/s
Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn (default)
Metadata:
HANDLER_NAME : VideoHandler
VENDOR_ID : [0][0][0][0]
ENCODER : Lavc59.37.100 libx264
DURATION : 00:00:10.014000000
Stream #0:1: Audio: opus, 48000 Hz, mono, fltp (default)
Metadata:
HANDLER_NAME : SoundHandler
VENDOR_ID : [0][0][0][0]
ENCODER : Lavc59.37.100 libopus
DURATION : 00:00:10.021000000
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=High
codec_type=video
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
width=1920
height=1080
coded_width=1920
coded_height=1080
closed_captions=0
film_grain=0
has_b_frames=2
sample_aspect_ratio=1:1
display_aspect_ratio=16:9
pix_fmt=yuv420p
level=40
color_range=unknown
color_space=unknown
color_transfer=unknown
color_primaries=unknown
chroma_location=left
field_order=progressive
refs=1
is_avc=true
nal_length_size=4
id=N/A
r_frame_rate=25/1
avg_frame_rate=25/1
time_base=1/1000
start_pts=14
start_time=0.014000
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
extradata_size=48
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:HANDLER_NAME=VideoHandler
TAG:VENDOR_ID=[0][0][0][0]
TAG:ENCODER=Lavc59.37.100 libx264
TAG:DURATION=00:00:10.014000000
[/STREAM]
[STREAM]
index=1
codec_name=opus
codec_long_name=Opus (Opus Interactive Audio Codec)
profile=unknown
codec_type=audio
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
sample_fmt=fltp
sample_rate=48000
channels=1
channel_layout=mono
bits_per_sample=0
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/1000
start_pts=-7
start_time=-0.007000
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
extradata_size=19
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:HANDLER_NAME=SoundHandler
TAG:VENDOR_ID=[0][0][0][0]
TAG:ENCODER=Lavc59.37.100 libopus
TAG:DURATION=00:00:10.021000000
[/STREAM]
> ffmpeg -version ffmpeg version 5.1.2-full_build-www.gyan.dev Copyright (c) 2000-2022 the FFmpeg developers built with gcc 12.1.0 (Rev2, Built by MSYS2 project) configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint 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
follow-up: 8 comment:7 by , 3 years ago
| Version: | 5.1.2 → unspecified |
|---|
If this was a regression please provide the change introducing it.
comment:8 by , 3 years ago
Replying to Carl Eugen Hoyos:
If this was a regression please provide the change introducing it.
Sorry, I don't understand what you mean, it's not regression (degrade), just that this problem occurs in 5.1.2. It is fixed in the latest git-master.
Is there anything I can do?



Did you do all your tests with git-master? There have been changes since the last release in this area and with these changes there is no longer desynchronisation between audio and video and the shift only happens once (namely when creating a_opus_copy.mkv, not when remuxing it). This last shift can be avoided by using the -copyts option to create a_opus_copy.mkv.