Audio Crackle AAC Audio (mp4) Video Exports

What is your operating system?
Windows 10 Enterprise

What is your Shotcut version (see Help > About Shotcut)? Is it 32-bit?
22.06.23 (not 32 bit)

Can you repeat the problem? If so, what are the steps?
(Please be specific and use the names as seen in Shotcut, preferably English. Include a screenshot or screen recording if you can. Also, you can attach logs from either View > Application Log or right-click a job and choose View Log.)

Repeatable every time.

Bug: The exported file contains audio which contains systemic low level distortion. Not clip distortion, but low level crackles during any period of medium to high signal level. The video when played in the program does not have the crackle.

Steps:

  1. Export any video with imported mp3 audio source into the project.
  2. Mp4 file using AAC audio, 192 kbps; variable rate
    (To be clear, the issue happens at higher bitrates and fixed bit rates)
    (Furthermore to be clear, I am an audio professional and have previously mixed the audio in Audition, leaving 1 dB of headroom. This is not a clipping issue. The fader in Shotcut also shows the audio peaking at precisely -1 dB)
  3. Listen to the exported video file’s audio. It will contain completely unexplainable noise coupled into the signal, as well as degradation of quality and a loss of low end.

Log:
[libx264 @ 0000026d40524f00] using SAR=1/1

[libx264 @ 0000026d40524f00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512

[libx264 @ 0000026d40524f00] profile High, level 4.0, 4:2:0, 8-bit

[libx264 @ 0000026d40524f00] 264 - core 164 r3094M bfc87b7 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - x264, the best H.264/AVC encoder - VideoLAN - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=6 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=24 lookahead_threads=4 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=150 keyint_min=15 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d641a8040] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d641a8040] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d641b8fc0] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d6433dcc0] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d6433dcc0] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d641af3c0] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d64ab6040] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d64ab6040] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d64af23c0] Reinit context to 1920x1088, pix_fmt: yuv420p

[producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2

[AVIOContext @ 0000026d50220580] Statistics: 2287412 bytes read, 1 seeks

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

checking VFR: pkt.duration 3003

[h264 @ 0000026d6447db80] Reinit context to 1920x1088, pix_fmt: yuv420p

[in @ 0000026d64f9c780] w:1920 h:1080 pixfmt:rgb24 tb:1001/30000 fr:30000/1001 sar:1/1001

[hue @ 0000026d64f9bf80] H_expr:(null) h_deg_expr:0 s_expr:1.25 b_expr:0

[scale @ 0000026d64f9e580] w:1920 h:1080 flags:‘bicubic+accurate_rnd+full_chroma_int+full_chroma_inp’ interl:0

[auto_scale_0 @ 0000026d64f9d080] w:iw h:ih flags:‘bicubic+accurate_rnd+full_chroma_int+full_chroma_inp’ interl:0

[hue @ 0000026d64f9bf80] auto-inserting filter ‘auto_scale_0’ between the filter ‘in’ and the filter ‘hue’

[auto_scale_0 @ 0000026d64f9d080] w:1920 h:1080 fmt:rgb24 sar:1/1001 → w:1920 h:1080 fmt:yuv444p sar:1/1001 flags:0x46004

[scale @ 0000026d64f9e580] w:1920 h:1080 fmt:yuv444p sar:1/1001 → w:1920 h:1080 fmt:rgb24 sar:1/1001 flags:0x46004

[pad @ 0000026d64f9e280] w:1920 h:1080 → w:1920 h:1080 x:0 y:0 color:0x000000FF

[auto_scale_0 @ 0000026d64f9d080] w:1920 h:1080 fmt:rgb24 sar:1/1001 → w:1920 h:1080 fmt:yuv444p sar:1/1001 flags:0x46004

[auto_scale_0 @ 0000026d64f9d080] w:1920 h:1080 fmt:rgb24 sar:1/1001 → w:1920 h:1080 fmt:yuv444p sar:1/1001 flags:0x46004

[auto_scale_0 @ 0000026d64f9d080] w:1920 h:1080 fmt:rgb24 sar:1/1 → w:1920 h:1080 fmt:yuv444p sar:1/1 flags:0x46004

[scale @ 0000026d64f9e580] w:1920 h:1080 fmt:yuv444p sar:1/1001 → w:1920 h:1080 fmt:rgb24 sar:1/1001 flags:0x46004

[scale @ 0000026d64f9e580] w:1920 h:1080 fmt:yuv444p sar:1/1001 → w:1920 h:1080 fmt:rgb24 sar:1/1001 flags:0x46004

[scale @ 0000026d64f9e580] w:1920 h:1080 fmt:yuv444p sar:1/1 → w:1920 h:1080 fmt:rgb24 sar:1/1 flags:0x46004

[mp3 @ 0000026d7cdde6c0] Skipping 0 bytes of junk at 6478.

[mp3 @ 0000026d7cdde6c0] Estimating duration from bitrate, this may be inaccurate

[mp3 @ 0000026d7cddf4c0] Skipping 0 bytes of junk at 6478.

[mp3 @ 0000026d7cddf4c0] Estimating duration from bitrate, this may be inaccurate

[producer avformat] audio: total_streams 1 max_stream 0 total_channels 2 max_channels 2

[AVIOContext @ 0000026d784f6200] Statistics: 98304 bytes read, 1 seeks

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde0880] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde0880] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d641e0dc0] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde0000] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde0000] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d641e1d80] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cdde6c0] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cdde6c0] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d641e2180] Reinit context to 1920x1088, pix_fmt: yuv420p

[producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2

[AVIOContext @ 0000026d784f5ac0] Statistics: 2287412 bytes read, 1 seeks

[mp3 @ 0000026d7cde13c0] Skipping 0 bytes of junk at 6478.

[mp3 @ 0000026d7cde13c0] Estimating duration from bitrate, this may be inaccurate

[mp3 @ 0000026d7cde0300] Skipping 0 bytes of junk at 6478.

[mp3 @ 0000026d7cde0300] Estimating duration from bitrate, this may be inaccurate

[producer avformat] audio: total_streams 1 max_stream 0 total_channels 2 max_channels 2

[AVIOContext @ 0000026d784f6080] Statistics: 98304 bytes read, 1 seeks

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

checking VFR: pkt.duration 3003

[h264 @ 0000026d641e2540] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde21c0] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde21c0] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d29cfe5c0] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde1f00] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde1f00] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d29cfe1c0] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cddef40] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cddef40] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d29d01500] Reinit context to 1920x1088, pix_fmt: yuv420p

[producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2

[AVIOContext @ 0000026d784f5ac0] Statistics: 2287412 bytes read, 1 seeks

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

checking VFR: pkt.duration 3003

[h264 @ 0000026d29cfed80] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde05c0] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde05c0] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d3bcb6280] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde21c0] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde21c0] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d3bcb52c0] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde1680] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde1680] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d29cff980] Reinit context to 1920x1088, pix_fmt: yuv420p

[producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2

[AVIOContext @ 0000026d784f6200] Statistics: 2287412 bytes read, 1 seeks

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

checking VFR: pkt.duration 3003

[h264 @ 0000026d385d0080] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde0b40] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde0b40] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d2a9488c0] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde1c40] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde1c40] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d2a948c80] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cddec80] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cddec80] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d2a949480] Reinit context to 1920x1088, pix_fmt: yuv420p

[producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2

[AVIOContext @ 0000026d784f6200] Statistics: 2287412 bytes read, 1 seeks

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

checking VFR: pkt.duration 3003

[h264 @ 0000026d2a9488c0] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cddfa80] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cddfa80] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d87b2d340] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde0880] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde0880] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d87b30280] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde0b40] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde0b40] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d87b2d740] Reinit context to 1920x1088, pix_fmt: yuv420p

[producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2

[AVIOContext @ 0000026d397dfbc0] Statistics: 2287412 bytes read, 1 seeks

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

checking VFR: pkt.duration 3003

[h264 @ 0000026d87b2fe80] Reinit context to 1920x1088, pix_fmt: yuv420p

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51059], current_position=[51058], int_position=[0], pts=[-9223372036854775808]

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51060], current_position=[51059], int_position=[0], pts=[-9223372036854775808]

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51061], current_position=[51060], int_position=[0], pts=[-9223372036854775808]

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51062], current_position=[51061], int_position=[0], pts=[-9223372036854775808]

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51063], current_position=[51062], int_position=[0], pts=[-9223372036854775808]

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51064], current_position=[51063], int_position=[0], pts=[-9223372036854775808]

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51065], current_position=[51064], int_position=[0], pts=[-9223372036854775808]

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51066], current_position=[51065], int_position=[0], pts=[-9223372036854775808]

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51067], current_position=[51066], int_position=[0], pts=[-9223372036854775808]

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51068], current_position=[51067], int_position=[0], pts=[-9223372036854775808]

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51069], current_position=[51068], int_position=[0], pts=[-9223372036854775808]

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51070], current_position=[51069], int_position=[0], pts=[-9223372036854775808]

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51071], current_position=[51070], int_position=[0], pts=[-9223372036854775808]

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51072], current_position=[51071], int_position=[0], pts=[-9223372036854775808]

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51073], current_position=[51072], int_position=[0], pts=[-9223372036854775808]

[chain avformat-novalidate] c:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090009.MP4

WILD TIMESTAMP: pkt.pts=[-9223372036854775808], pkt.dts=[-9223372036854775808], req_position=[51074], current_position=[51073], int_position=[0], pts=[-9223372036854775808]

[AVIOContext @ 0000026d6450be40] Statistics: 56793322 bytes read, 2 seeks

[AVIOContext @ 0000026d642003c0] Statistics: 64997638 bytes read, 2 seeks

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde0e40] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cde0e40] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d947b5d00] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cddf7c0] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cddf7c0] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d947b9400] Reinit context to 1920x1088, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cddfa80] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3003

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d7cddfa80] st: 0 edit list 1 Cannot find an index entry before timestamp: 3003.

[h264 @ 0000026d947b8440] Reinit context to 1920x1088, pix_fmt: yuv420p

[producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2

[AVIOContext @ 0000026d397dfe80] Statistics: 1353211 bytes read, 2 seeks

[chain avformat-novalidate] C:/Users/mroberto/Downloads/PHLN Ep2 Kayci/P1090010.MP4

checking VFR: pkt.duration 3003

[h264 @ 0000026d947b7c80] Reinit context to 1920x1088, pix_fmt: yuv420p

[in @ 0000026d38736180] w:1920 h:1080 pixfmt:rgb24 tb:1001/30000 fr:30000/1001 sar:1/1001

[hue @ 0000026d38734d80] H_expr:(null) h_deg_expr:0 s_expr:1.23 b_expr:0

[scale @ 0000026d38734e80] w:1920 h:1080 flags:‘bicubic+accurate_rnd+full_chroma_int+full_chroma_inp’ interl:0

[auto_scale_0 @ 0000026d38735180] w:iw h:ih flags:‘bicubic+accurate_rnd+full_chroma_int+full_chroma_inp’ interl:0

[hue @ 0000026d38734d80] auto-inserting filter ‘auto_scale_0’ between the filter ‘in’ and the filter ‘hue’

[auto_scale_0 @ 0000026d38735180] w:1920 h:1080 fmt:rgb24 sar:1/1001 → w:1920 h:1080 fmt:yuv444p sar:1/1001 flags:0x46004

[scale @ 0000026d38734e80] w:1920 h:1080 fmt:yuv444p sar:1/1001 → w:1920 h:1080 fmt:rgb24 sar:1/1001 flags:0x46004

[pad @ 0000026d38737380] w:1920 h:1080 → w:1920 h:1080 x:0 y:0 color:0x000000FF

[auto_scale_0 @ 0000026d38735180] w:1920 h:1080 fmt:rgb24 sar:1/1001 → w:1920 h:1080 fmt:yuv444p sar:1/1001 flags:0x46004

[auto_scale_0 @ 0000026d38735180] w:1920 h:1080 fmt:rgb24 sar:1/1001 → w:1920 h:1080 fmt:yuv444p sar:1/1001 flags:0x46004

[auto_scale_0 @ 0000026d38735180] w:1920 h:1080 fmt:rgb24 sar:1/1 → w:1920 h:1080 fmt:yuv444p sar:1/1 flags:0x46004

[scale @ 0000026d38734e80] w:1920 h:1080 fmt:yuv444p sar:1/1001 → w:1920 h:1080 fmt:rgb24 sar:1/1001 flags:0x46004

[scale @ 0000026d38734e80] w:1920 h:1080 fmt:yuv444p sar:1/1001 → w:1920 h:1080 fmt:rgb24 sar:1/1001 flags:0x46004

[scale @ 0000026d38734e80] w:1920 h:1080 fmt:yuv444p sar:1/1 → w:1920 h:1080 fmt:rgb24 sar:1/1 flags:0x46004

[AVIOContext @ 0000026d784f5dc0] Statistics: 23396352 bytes read, 1 seeks

[wav @ 0000026d796ef9c0] Discarding ID3 tags because more suitable tags were found.

[wav @ 0000026d796ef9c0] parser not found for codec pcm_s16le, packets or times may be invalid.

[wav @ 0000026d796ee900] Discarding ID3 tags because more suitable tags were found.

[wav @ 0000026d796ee900] parser not found for codec pcm_s16le, packets or times may be invalid.

[producer avformat] audio: total_streams 1 max_stream 0 total_channels 2 max_channels 2

[AVIOContext @ 0000026d397e0d00] Statistics: 327764 bytes read, 4 seeks

[AVIOContext @ 0000026d784f5f00] Statistics: 2015938269 bytes read, 2 seeks

[AVIOContext @ 0000026d784f5680] Statistics: 2022148570 bytes read, 2 seeks

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d796eebc0] st: 0 edit list: 1 Missing key frame while searching for timestamp: 15015

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d796eebc0] st: 0 edit list 1 Cannot find an index entry before timestamp: 15015.

[h264 @ 0000026d947b68c0] Reinit context to 3840x2160, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d796eff80] st: 0 edit list: 1 Missing key frame while searching for timestamp: 15015

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d796eff80] st: 0 edit list 1 Cannot find an index entry before timestamp: 15015.

[h264 @ 0000026d01fabc40] Reinit context to 3840x2160, pix_fmt: yuv420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d796f1340] st: 0 edit list: 1 Missing key frame while searching for timestamp: 15015

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026d796f1340] st: 0 edit list 1 Cannot find an index entry before timestamp: 15015.

[h264 @ 0000026d01fa9100] Reinit context to 3840x2160, pix_fmt: yuv420p

[producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2

[AVIOContext @ 0000026d397e12c0] Statistics: 3397113 bytes read, 2 seeks

[chain avformat-novalidate] C:/Users/mroberto/Downloads/PHLN Ep1 Grant/flowerinwind.MP4

checking VFR: pkt.duration 15015

[h264 @ 0000026d01faa880] Reinit context to 3840x2160, pix_fmt: yuv420p

[in @ 0000026d64f9d980] w:1920 h:1080 pixfmt:yuyv422 tb:1001/30000 fr:30000/1001 sar:1/1001

[hue @ 0000026d64f9bd80] H_expr:(null) h_deg_expr:0 s_expr:1.25 b_expr:0

[scale @ 0000026d64f9e680] w:1920 h:1080 flags:‘bicubic+accurate_rnd+full_chroma_int+full_chroma_inp’ interl:0

[auto_scale_0 @ 0000026d64f9af80] w:iw h:ih flags:‘bicubic+accurate_rnd+full_chroma_int+full_chroma_inp’ interl:0

[out @ 0000026d64f9aa80] auto-inserting filter ‘auto_scale_0’ between the filter ‘pad’ and the filter ‘out’

[auto_scale_1 @ 0000026d64f9cd80] w:iw h:ih flags:‘bicubic+accurate_rnd+full_chroma_int+full_chroma_inp’ interl:0

[hue @ 0000026d64f9bd80] auto-inserting filter ‘auto_scale_1’ between the filter ‘in’ and the filter ‘hue’

[auto_scale_1 @ 0000026d64f9cd80] w:1920 h:1080 fmt:yuyv422 sar:1/1001 → w:1920 h:1080 fmt:yuv422p sar:1/1001 flags:0x46004

[scale @ 0000026d64f9e680] w:1920 h:1080 fmt:yuv422p sar:1/1001 → w:1920 h:1080 fmt:yuv422p sar:1/1001 flags:0x46004

[pad @ 0000026d64f9c980] w:1920 h:1080 → w:1920 h:1080 x:0 y:0 color:0x000000FF

[auto_scale_0 @ 0000026d64f9af80] w:1920 h:1080 fmt:yuv422p sar:1/1001 → w:1920 h:1080 fmt:yuyv422 sar:1/1001 flags:0x46004

[auto_scale_1 @ 0000026d64f9cd80] w:1920 h:1080 fmt:yuyv422 sar:1/1001 → w:1920 h:1080 fmt:yuv422p sar:1/1001 flags:0x46004

[auto_scale_1 @ 0000026d64f9cd80] w:1920 h:1080 fmt:yuyv422 sar:1/1001 → w:1920 h:1080 fmt:yuv422p sar:1/1001 flags:0x46004

[auto_scale_1 @ 0000026d64f9cd80] w:1920 h:1080 fmt:yuyv422 sar:1/1 → w:1920 h:1080 fmt:yuv422p sar:1/1 flags:0x46004

[scale @ 0000026d64f9e680] w:1920 h:1080 fmt:yuv422p sar:1/1001 → w:1920 h:1080 fmt:yuv422p sar:1/1001 flags:0x46004

[scale @ 0000026d64f9e680] w:1920 h:1080 fmt:yuv422p sar:1/1001 → w:1920 h:1080 fmt:yuv422p sar:1/1001 flags:0x46004

[scale @ 0000026d64f9e680] w:1920 h:1080 fmt:yuv422p sar:1/1 → w:1920 h:1080 fmt:yuv422p sar:1/1 flags:0x46004

[auto_scale_0 @ 0000026d64f9af80] w:1920 h:1080 fmt:yuv422p sar:1/1001 → w:1920 h:1080 fmt:yuyv422 sar:1/1001 flags:0x46004

[auto_scale_0 @ 0000026d64f9af80] w:1920 h:1080 fmt:yuv422p sar:1/1001 → w:1920 h:1080 fmt:yuyv422 sar:1/1001 flags:0x46004

[auto_scale_0 @ 0000026d64f9af80] w:1920 h:1080 fmt:yuv422p sar:1/1 → w:1920 h:1080 fmt:yuyv422 sar:1/1 flags:0x46004

[mp4 @ 0000026d3e3de700] Timestamps are unset in a packet for stream 1. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly

[mp4 @ 0000026d3e3de700] Encoder did not produce proper pts, making some up.

[mp4 @ 0000026d3e3de700] Starting second pass: moving the moov atom to the beginning of the file

[AVIOContext @ 0000026d397e0440] Statistics: 3460511099 bytes read, 0 seeks

[libx264 @ 0000026d40524f00] frame I:391 Avg QP:15.39 size:615171

[libx264 @ 0000026d40524f00] frame P:14728 Avg QP:18.52 size:178299

[libx264 @ 0000026d40524f00] frame B:40712 Avg QP:24.18 size: 13394

[libx264 @ 0000026d40524f00] consecutive B-frames: 1.4% 2.8% 4.3% 91.5%

[libx264 @ 0000026d40524f00] mb I I16…4: 2.2% 87.7% 10.1%

[libx264 @ 0000026d40524f00] mb P I16…4: 0.1% 3.0% 0.4% P16…4: 49.8% 23.2% 19.1% 0.0% 0.0% skip: 4.3%

[libx264 @ 0000026d40524f00] mb B I16…4: 0.1% 0.4% 0.1% B16…8: 19.5% 5.5% 0.6% direct: 9.8% skip:64.0% L0:36.4% L1:40.5% BI:23.1%

[libx264 @ 0000026d40524f00] 8x8 transform intra:81.5% inter:78.0%

[libx264 @ 0000026d40524f00] coded y,uvDC,uvAC intra: 88.2% 95.5% 68.1% inter: 28.9% 25.9% 6.7%

[libx264 @ 0000026d40524f00] i16 v,h,dc,p: 24% 13% 20% 43%

[libx264 @ 0000026d40524f00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 18% 17% 7% 9% 9% 10% 7% 10%

[libx264 @ 0000026d40524f00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 16% 16% 10% 8% 12% 11% 11% 8% 9%

[libx264 @ 0000026d40524f00] i8c dc,h,v,p: 48% 25% 16% 11%

[libx264 @ 0000026d40524f00] Weighted P-Frames: Y:2.6% UV:1.7%

[libx264 @ 0000026d40524f00] ref P L0: 68.7% 31.3%

[libx264 @ 0000026d40524f00] ref B L0: 84.3% 15.7%

[libx264 @ 0000026d40524f00] ref B L1: 95.6% 4.4%

[libx264 @ 0000026d40524f00] kb/s:14651.76

[aac @ 0000026d404fb5c0] Qavg: 440.167

[AVIOContext @ 0000026d50220400] Statistics: 6921087013 bytes written, 30 seeks, 26422 writeouts

Completed successfully in 00:26:40

A few thoughts:

  1. Would it be possible to export from Audition as WAV instead of MP3? Aside from the lossy vs lossless benefits, WAV also helps because MP3 is not a seek-friendly format at the sample level. If Shotcut exports with Parallel Processing turned on (and sometimes even when off), this seek inaccuracy can cause sync problems.

  2. I assume the Audition mix targets 1 dB headroom because you know the side effects of quantization used by lossy formats like MP3. The lossy audio approximates the original source in a way that compresses better, but the approximation will sometimes be a little louder or softer than the original by virtue of being an approximation. When the approximation is louder, any original sound mixed to 0 dB goes into the clipping range, hence the need for 1 dB headroom. However, the workflow we see so far is an MP3 source being recompressed to an AAC target. That is double lossy compression and approximation, which means the MP3 headroom needs to be at least 1.5 dB. Or, the video project needs an output (stereo bus) limiter at 1 to 1.5 dB to protect the AAC approximation from clipping.

  3. AAC is far from perfect. Would AC-3 or MP3 be an option, or Opus in a Matroska container? Those codecs tend to be more faithful to the original sound. Here’s a discussion with distortion graphs that you may find interesting:

1 Like

Hey Austin,

Thanks for your reply.

I have more than enough quality at 192 kbit mp3 to AAC. The issue is not clipping. My ~1 dB headroom is still intact. With my long podcasts, I avoid wav files as I do not need files consuming that much data.

AC3 is an older standard and technically lower quality than AAC. Oddly, when I change the setting in the export settings for Audio Codec from ‘AAC’ to ‘Default for format’ the issue is resolved.

Prior, I was also exporting with the video disabled, and with parallel processing disabled and enabled. The issue was persistent. I was trying these to see if any kind of processing was to blame. I’m on a powerful machine that is exporting quickly and able to render everything in real time in the timeline without hiccups. These tests confirm to me it’s not an issue in my machine getting bogged down during export.

There appears to be a legit issue with manually selecting AAC audio Codec, even though that should be the default anyway.

The distortion is not clipping, but actually noise coupled into the signal. There’s plenty of headroom left after the conversion is done.

I saved out wav files of the distorted audio with AAC and the undistorted audio with ‘Default for Format’ , but this forum won’t let me upload them.

I’m an electrical engineer in the audio field and I use the AAC codec in all my DAWs for audio testing. I have high confidence there’s a bug when manually selecting AAC codec. Let’s see if the dev’s look into this.

For now I have the workaround.

I am interesting in investigating, but it would save me considerable time if someone would be willing to lay down exact steps for a minimum failure example. Ideally, the steps would not rely on external source media (use the built in audio tone generator and color clips).

Hey Brian,

I would be happy to help you. I suspect one would be most likely to encounter this issue when using a complex signal that has a high amplitude, and especially something that contains hard edges caused by plosives and frictaves. I’m not sure if a tone or multi-tone can cause the behavior.

I’ll give it a test and get back to you. I’m fairly sure this issue is unrelated to video processing and could be seen with a blank video.

I was under the impression tone generator could synthesize and save tones to audio tracks, but it does not appear that way to me.

It would take a combined synthesis of multiple tones in my estimation, at least to repro the issue. This is due to the way mp3 compression works (filterbanks).

It definitely cannot be reproduced with a single tone, I have tried that now. I have the source waveform which causes it. I just wish I could attach it here.

Generally, any voice which is loud, peaking -1 dB in all of my podcasts is constantly causing the distortion when the AAC codec is selected. Also, the distortion is happening for signals less than -1 dB, down to lets say -6 dB, but not for very quiet signal.

Have you tried zipping the file then uploading it? Might be a new user forum thing that is restricting you.

For large files, you might have to use a file sharing service like google drive.

I too have been experiencing crackling in the project as well as the export. I tried all of the tricks to no avail. The only resolution I got was to export all of the edited audio into a single file (in this case, I chose WAV) then imported that file into my sound editor (I use audacity). I also imported into audacity all of the audio clips used for my shotcut project then edited them as needed using the sound clip from shotcut to assist with the timing. I then used the newly created sound file to put back into shotcut as a single file and the crackling issues are no longer evident. It seems there is an issue with handling audio clips that are sliced within shotcut. To experiment, I took the good working audio clip then split it at a random spot. As soon as I did this, the crackling was back. Just wanted to share this in case it can help someone get their project completed or maybe even to help the devs figure out what is going on with shotcut. Still love the platform. Happy editing all!

This bug makes the program unusable for me. Glad I recently got something else.

The bug is now happening even when I select ‘Default for format’ as Codec.

The audio does not crackle in the project. Only once it has been exported.

Luckily, tried again with a higher bitrate (384k is extremely high)

Also, disabled the video. This time no crackle.

I recall in the past that disabling the video did not make a difference in the crackle. I was also able to get glitch free audio at 192 k when selecting ‘Default for Format’ Audio Codec.

That’s telling me this is an intermittent thing that happens across a variety of conditions.

New users can only embed one media into each post. That’s a wrench in the way of productivity.

To admins - audio files cannot be attached here. I can post the glitch vs no glitch audio segments if you allow permissions for .wav and .mp3.

I am still interested in helping. Have you made any progress to make a simple example project?

Correct. An external file sharing service like GoogleDrive is the best way to share media files for this site. It would be great if you could provide links to a single audio file and mlt project file and step-by-step instructions to use those files to hear the problem.

1 Like

Hello Brian, I made a minimal example where cracks in the audio of the exported file appear.

Thank you!
Tom

Thank you for providing the example project. I think this is going to be a difficult problem to nail down. I think I hear what you are describing. But I am not sure.

The reason that I am unsure is because in my listening test the preview in Shotcut sounds the same as the exported file. I am using noise canceling headphones to listen, but maybe I am not able to discern a difference between preview and exported file. Also, I find the distortion (if I am indeed hearing what you hear) to be very subtle.

A couple of points for clarification:

Have you also tried the latest version 22.12.21? Both versions sound the same to me, but I am not sure if I am hearing the problem correctly.

In my listening, I think I would describe the distortion as “clicks”. I agree that they do not sound like clipping. Also, very subtle to my ears, but maybe more pronounced to experienced listeners.

When I play the source .wav file and turn my computer volume up very loud, I feel like I can hear the clicks in the source file. Maybe I am not listening for the right distortion?

The file you provided is .wav. I assume you performed a conversion as suggested by another user above.

You have an equalizer filter applied with -20db on the low end. So I think that would explain the low end? There is basically no low end in the preview when I listen.

image

AAC is the default when I choose any of the H.264 presets. Which preset are you starting from?
image

What program are you using to listen to the exported file? Windows media player? How does it sound it you open the exported file and play it in Shotcut?

I apologize if the questions seem futile and distortion is so obvious to you. Hopefully I am not missing something. Or maybe another reader will download your project and will be able to hear the different between preview and exported file.

Hello Brian. Right, there are some filters applied to the audio - that is not optimal to find out what the problem is. I prepare another example with is even more minimal. My system:

System:
Host: erde Kernel: 6.0.0-6-amd64 arch: x86_64 bits: 64 Console: pty pts/4
Distro: Debian GNU/Linux bookworm/sid

I tried different versions of shotcut, the clicks in the exported file remain. Yes, it’s subtle. I played with vlc and gnome video player and tried other computers too. I make a picture of the original waveform in comparison with the clicky one. I can do that tonight. Thanks for your effort!
Tom

Perhaps it is not necessary to upload another project: I removed all the audiofilters in the project (also the ones in the master-track “output”) and the clicks still remain.
Tom

i noticed something else when analysing the audio (original vs. exported): the exported audio is slightly shortened/squeezed together as if shotcut resamples it (i’m just guessing).

This is good progress to make the most minimal example possible.

Shotcut is not resampling because the source sample rate matches the output sample rate. And there would be messages in the log if sample rate conversion were occurring. Maybe samples are being dropped for some reason.

Here is the version without filters. One more thing I noticed is, that when I use the whole original wav-file it does not click. It clicks when cutted it in parts within shotcut (in the exported video).