如何解决在 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 创建的文件中的多个点检测音频信号剪辑。当我通过 Adobe 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 举报,一经查实,本站将立刻删除。