微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 FFmpeg 中合并后的音频剪辑

如何解决在 FFmpeg 中合并后的音频剪辑

希望有人可以帮助我解决我在使用 FFmpeg 时遇到的这个音频问题。我已经使用 FFmpeg 编写了一个 bash 脚本,该脚本将具有四个单声道音频的广播质量 ProRes (HQ) 文件处理为源。源音频是 LPCM 24 位、48kHz 带符号的小端,我正在导出相同的内容。音轨 1 是左侧完全混音,音轨 2 是右侧完全混音,音轨 3 是音乐/FX 左侧,而音轨 4 是音乐/FX 右侧。该脚本获取源视频并使用来自 sidecar XML 的入点和出点修剪视频资产。它还在头部添加一个自定义 slate,它使用单独的 slate-only MOV 文件并通过 concat 连接在一起。自定义文本通过 drawtext 过滤器添加到 slate,最后,音频轨道 3 和 4 被删除,轨道 1 和 2 使用 amerge 合并成一个立体声交错轨道。

所有这一切,似乎都像一种魅力。当我通过我们的内部 QC 软件运行生成的导出时,我注意到的问题发生了。该软件在 FFmpeg 创建的文件中的多个点检测音频信号剪辑。当我通过 Adob​​e Premiere 或其他转码系统创建这个完全相同的文件时,我们的 QC 没有检测到任何剪辑。我们的 QC 工具也不会检测源文件中的任何剪辑。这让我相信剪辑是由 FFmpeg 或我的实现引入的。我在 FFmpeg 中尝试了多个额外的过滤器,包括 pan、amix、volume 等,但似乎没有任何帮助。

有人有什么想法吗?粘贴我的脚本的相关部分以供参考:

ffmpeg \
-ss "$hour":"$min":"$sec""$mil_fin" \
-t "$hour_minus":"$min_b":"$sec_b""$mil_fin_b" \
-i "$vid" \
-i "$elements_path"Slate_HD.mov \
-filter_complex \
"[0:a:0] [0:a:1] amerge=inputs=2 [stereo]; \
[1:0] [1:1] [0:0] [stereo] concat=n=2:v=1:a=1 [v] [a]; \
[v]drawtext=enable='between(t,28)':fontfile="$fonts"Arial.ttf:fontsize=50:fontcolor=white\
:x=170:y=170:text='$title',\
drawtext=enable='between(t,28)':fontfile="$fonts"Arial.ttf:fontsize=50:fontcolor=white\
:x=170:y=170+50:text='Series $series_number Episode $episode_number',28)':fontfile="$fonts"Arial.ttf:fontsize=50:fontcolor=white\
:x=170:y=170+150:text='$transcode_date',\
yadif=0:-1:0 [o]" \
-map '[o]' -map '[a]' \
-timecode 09:59:30:00 \
-c:v prores_ks -profile:v 3 \
-c:a pcm_s24le \
-threads 3 \
"$output_name".mov

根据建议,简化的纯音频命令行运行如下:

ffmpeg -i test.mov -i Slate_HD.mov -filter_complex "[0:a:0] [0:a:1] amerge=inputs=2 [stereo];[1:a][stereo]concat=n=2:a=1:v=0" -c:a pcm_s24le test_output.mov

...以及来自该命令行的日志:

ffmpeg version 4.3.2 copyright (c) 2000-2021 the FFmpeg developers
  built with Apple clang version 12.0.0 (clang-1200.0.32.29)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.2_3 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolBox
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Guessed Channel Layout for Input Stream #0.1 : mono
Guessed Channel Layout for Input Stream #0.2 : mono
Guessed Channel Layout for Input Stream #0.3 : mono
Guessed Channel Layout for Input Stream #0.4 : mono
Input #0,mov,mp4,m4a,3gp,3g2,mj2,from '/input/test.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2021-04-22T18:58:58.000000Z
  Duration: 00:02:00.04,start: 0.000000,bitrate: 170739 kb/s
    Stream #0:0(eng): Video: prores (HQ) (apch / 0x68637061),yuv422p10le(tv,bt709/unkNown/unkNown,top coded first (swapped)),1920x1080,166061 kb/s,SAR 1:1 DAR 16:9,25 fps,25 tbr,25 tbn,25 tbc (default)
    Metadata:
      creation_time   : 2021-04-22T18:58:58.000000Z
      handler_name    : Apple Video Media Handler
      encoder         : Apple ProRes 422 HQ
      timecode        : 00:00:00:00
    Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69),48000 Hz,mono,s32 (24 bit),1152 kb/s (default)
    Metadata:
      creation_time   : 2021-04-22T18:58:58.000000Z
      handler_name    : Apple Sound Media Handler
      timecode        : 00:00:00:00
    Stream #0:2(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
    Metadata:
      creation_time   : 2021-04-22T18:58:58.000000Z
      handler_name    : Apple Sound Media Handler
      timecode        : 00:00:00:00
    Stream #0:3(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
    Metadata:
      creation_time   : 2021-04-22T18:58:58.000000Z
      handler_name    : Apple Sound Media Handler
      timecode        : 00:00:00:00
    Stream #0:4(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
    Metadata:
      creation_time   : 2021-04-22T18:58:58.000000Z
      handler_name    : Apple Sound Media Handler
      timecode        : 00:00:00:00
    Stream #0:5(eng): Data: none (tmcd / 0x64636D74) (default)
    Metadata:
      creation_time   : 2021-04-22T18:58:58.000000Z
      handler_name    : Time Code Media Handler
      timecode        : 00:00:00:00
Input #1,from '/input/Slate_HD.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2021-03-22T17:23:16.000000Z
  Duration: 00:00:30.00,bitrate: 77599 kb/s
    Stream #1:0(eng): Video: prores (HQ) (apch / 0x68637061),bt709,progressive),75783 kb/s,25 tbc (default)
    Metadata:
      creation_time   : 2021-03-22T17:23:16.000000Z
      handler_name    : Apple Video Media Handler
      encoder         : Apple ProRes 422 HQ
      timecode        : 00:00:00:00
    Stream #1:1(eng): Audio: pcm_s16le (sowt / 0x74776F73),stereo,s16,1536 kb/s (default)
    Metadata:
      creation_time   : 2021-03-22T17:23:16.000000Z
      handler_name    : Apple Sound Media Handler
      timecode        : 00:00:00:00
    Stream #1:2(eng): Data: none (tmcd / 0x64636D74),0 kb/s (default)
    Metadata:
      creation_time   : 2021-03-22T17:23:16.000000Z
      handler_name    : Time Code Media Handler
      timecode        : 00:00:00:00
Stream mapping:
  Stream #0:1 (pcm_s24le) -> amerge:in0 (graph 0)
  Stream #0:2 (pcm_s24le) -> amerge:in1 (graph 0)
  Stream #1:1 (pcm_s16le) -> concat:in0:a0 (graph 0)
  concat (graph 0) -> Stream #0:0 (pcm_s24le)
  Stream #0:0 -> #0:1 (prores (native) -> h264 (libx264))
Press [q] to stop,[?] for help
[libx264 @ 0x7feadf81a600] using SAR=1/1
[libx264 @ 0x7feadf81a600] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7feadf81a600] profile High 4:2:2,level 4.0,4:2:2,10-bit
[libx264 @ 0x7feadf81a600] 264 - core 161 r3048 b86ae3c - H.264/MPEG-4 AVC codec - copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 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=12 lookahead_threads=2 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=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=81 qpstep=4 ip_ratio=1.40 aq=1:1.00
[Parsed_amerge_0 @ 0x7feade41dfc0] No channel layout for input 1
[Parsed_amerge_0 @ 0x7feade41dfc0] Input channel layouts overlap: output layout will be determined by the number of distinct input channels
Output #0,to '/output/test_output.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    encoder         : Lavf58.45.100
    Stream #0:0: Audio: pcm_s24le (in24 / 0x34326E69),s32,2304 kb/s (default)
    Metadata:
      encoder         : Lavc58.91.100 pcm_s24le
    Stream #0:1(eng): Video: h264 (libx264) (avc1 / 0x31637661),yuv422p10le(top coded first (swapped)),1920x1080 [SAR 1:1 DAR 16:9],q=-1--1,0.04 fps,12800 tbn,25 tbc (default)
    Metadata:
      creation_time   : 2021-04-22T18:58:58.000000Z
      handler_name    : Apple Video Media Handler
      timecode        : 00:00:00:00
      encoder         : Lavc58.91.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame=   47 fps=0.0 q=0.0 size=       0kB time=00:00:00.02 bitrate=  15.0kbits/sframe=   88 fps= 80 q=40.0 size=     256kB time=00:00:01.17 bitrate=1791.7kbits/frame=  133 fps= 82 q=40.0 size=     768kB time=00:00:02.98 bitrate=2110.4kbits/frame=  164 fps= 76 q=40.0 size=    1280kB time=00:00:04.21 bitrate=2488.8kbits/frame=  185 fps= 70 q=40.0 size=    1792kB time=00:00:05.06 bitrate=2899.0kbits/frame=  195 fps= 61 q=40.0 size=    2048kB time=00:00:05.44 bitrate=3079.6kbits/frame=  206 fps= 55 q=40.0 size=    2560kB time=00:00:05.89 bitrate=3557.0kbits/frame=  218 fps= 51 q=40.0 size=    3072kB time=00:00:06.38 bitrate=3942.1kbits/frame=  230 fps= 47 q=40.0 size=    3584kB time=00:00:06.85 bitrate=4284.1kbits/frame=  242 fps= 44 q=40.0 size=    4096kB time=00:00:07.34 bitrate=4570.7kbits/frame=  251 fps= 42 q=37.0 size=    4352kB time=00:00:07.70 bitrate=4627.7kbits/frame=  265 fps= 41 q=40.0 size=    5376kB time=00:00:08.25 bitrate=5334.4kbits/frame=  272 fps= 39 q=40.0 size=    5632kB time=00:00:08.53 bitrate=5406.8kbits/frame=  283 fps= 37 q=40.0 size=    5888kB time=00:00:08.98 bitrate=5370.6kbits/frame=  296 fps= 37 q=40.0 size=    6400kB .04 bitrate=5549.0kbits/frame= 3001 fps= 21 q=-1.0 Lsize=  106530kB time=00:02:30.04 bitrate=5816.4kbits/s speed=1.07x    
video:64287kB audio:42199kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.041280%
[libx264 @ 0x7feadf81a600] frame I:33    Avg QP:33.56  size:113497
[libx264 @ 0x7feadf81a600] frame P:984   Avg QP:36.20  size: 35478
[libx264 @ 0x7feadf81a600] frame B:1984  Avg QP:37.44  size: 13696
[libx264 @ 0x7feadf81a600] consecutive B-frames: 11.5%  0.9%  0.9% 86.8%
[libx264 @ 0x7feadf81a600] mb I  I16..4:  3.4% 86.8%  9.7%
[libx264 @ 0x7feadf81a600] mb P  I16..4:  1.6% 13.7%  0.7%  P16..4: 44.3%  8.5%  7.0%  0.0%  0.0%    skip:24.2%
[libx264 @ 0x7feadf81a600] mb B  I16..4:  0.1%  1.1%  0.0%  B16..8: 47.6%  2.4%  0.3%  direct: 1.3%  skip:47.3%  L0:47.0% L1:51.3% BI: 1.7%
[libx264 @ 0x7feadf81a600] 8x8 transform intra:85.9% inter:88.3%
[libx264 @ 0x7feadf81a600] coded y,uvDC,uvAC intra: 67.9% 73.8% 13.9% inter: 20.8% 21.6% 0.6%
[libx264 @ 0x7feadf81a600] i16 v,h,dc,p: 48% 15%  4% 33%
[libx264 @ 0x7feadf81a600] i8 v,ddl,ddr,vr,hd,vl,hu: 19% 11% 27%  6%  7%  7%  7%  8%  7%
[libx264 @ 0x7feadf81a600] i4 v,hu: 28% 15% 14%  7%  9%  9%  8%  6%  5%
[libx264 @ 0x7feadf81a600] i8c dc,v,p: 57% 12% 24%  7%
[libx264 @ 0x7feadf81a600] Weighted P-Frames: Y:0.1% UV:0.1%
[libx264 @ 0x7feadf81a600] ref P L0: 69.1% 21.7%  9.2%  0.0%
[libx264 @ 0x7feadf81a600] ref B L0: 87.2% 10.4%  2.5%
[libx264 @ 0x7feadf81a600] ref B L1: 94.9%  5.1%
[libx264 @ 0x7feadf81a600] kb/s:4387.16
WU:~ user$ 
ffmpeg version 4.3.2 copyright (c) 2000-2021 the FFmpeg developers
  built with Apple clang version 12.0.0 (clang-1200.0.32.29)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.2_3 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolBox
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Guessed Channel Layout for Input Stream #0.1 : mono
Guessed Channel Layout for Input Stream #0.2 : mono
Guessed Channel Layout for Input Stream #0.3 : mono
Guessed Channel Layout for Input Stream #0.4 : mono
Input #0,p: 57% 12% 24%  7%
[libx264 @ 0x7feadf81a600] Weighted P-Frames: Y:0.1% UV:0.1%
[libx264 @ 0x7feadf81a600] ref P L0: 69.1% 21.7%  9.2%  0.0%
[libx264 @ 0x7feadf81a600] ref B L0: 87.2% 10.4%  2.5%
[libx264 @ 0x7feadf81a600] ref B L1: 94.9%  5.1%
[libx264 @ 0x7feadf81a600] kb/s:4387.16
WU:~ user$ 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。