问题描述
请帮助我,希望将特定的ffmpeg参数包含在我的视频编码中。
我的作品仅与视频流有关,因此这是我唯一要更改的作品。 我收到一个已经为特定广播公司预编译的.mov文件,其中一些自包含视频有4个流(1个视频,2个音频和一些其他时间码流)。其他的最多有17个流:1个视频,15个音频流,最后一个是不受支持的tmcd。
我的流程管道包括仅重新编码/重新处理视频流,以及我需要传递到输出文件的所有其他内容-所有其他流,而无需进行任何更改或更改。
在此编码步骤中,我从2-3秒,4-5和6-8位置将icon.png插入位置5:21。为此,我使用map选项,因此我的编码字符串如下所示:
ffmpeg -i in.mov -i icon.png -i icon.png -i icon.png
-filter_complex " [0][1]overlay=5:21:enable='between(t,2,3)'[v1];
[v1][2]overlay=5:21:enable='between(t,4,5)'[v2];
[v2][3]overlay=5:21:enable='between(t,6,8)'[v3]" -map '[v3]' -map 0:a
-c:v dvvideo -pix_fmt yuv422p -b:v 115084915 -maxrate 115084915 -minrate 115084915 -r 29.97 -top 1 -color_primaries bt709 -color_trc bt709 -colorspace bt709 -vtag dvh6
-c:a copy -c:s copy -y out.mov
问题在于out.mov仅显示2个流而不是17个(1个视频和2个音频)。所有其他15个流将被完全截断。 阅读其他一些stackoverflow帖子,我发现了一种转移所有其他流的方法,方法是使用-map 0:
但是当我尝试在最后一行添加 -map 0 时:
...
-map 0 -c:a copy -c:s copy -y out.mov
,但是这会使流的数量从17倍增加到34,从而使输出数量增加了一倍。 如果我从原始编码字符串中删除 map'[v3]'-map 0:a 并且仅包含-map 0,我将获得正确数量的流,但是icon.png当然不会在正确的时间插入。我该怎么办?
是否可以在不使用此 -map 选项的情况下重新映射-filter_complex以覆盖图像?或者,具体说明每个-地图指的是什么?
如果没有,我还可以使用其他哪些参数/参数(如果甚至存在该选项)来复制所有流,子和所有其他音频,如果存在的话,可能还会存在其他一些音频受损信号。
请帮助,这样我就可以最终包装输出并提交工作。
编辑1: 这是我的输出:
ffprobe version N-99345-g904ab5365c Copyright (c) 2007-2020 the FFmpeg developers
built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
configuration: --enable-filter=qrrabbit --enable-opengl --enable-gpl --enable-libx264 --extra-libs='-lqrencode -lpthread'
libavutil 56. 59.100 / 56. 59.100
libavcodec 58.106.100 / 58.106.100
libavformat 58. 58.100 / 58. 58.100
libavdevice 58. 11.102 / 58. 11.102
libavfilter 7. 87.100 / 7. 87.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
libpostproc 55. 8.100 / 55. 8.100
Input #0,mov,mp4,m4a,3gp,3g2,mj2,from 'output.mov':
Metadata:
major_brand : qt
minor_version : 512
compatible_brands: qt
creation_time : 2020-02-29T22:07:42.000000Z
encoder : Lavf58.58.100
Duration: 00:00:20.05,start: 0.000000,bitrate: 133544 kb/s
Stream #0:0: Video: dvvideo (dvh6 / 0x36687664),yuv422p(bt709,top first),1280x1080 [SAR 3:2 DAR 16:9],115084 kb/s,29.97 fps,29.97 tbr,11988 tbn,29.97 tbc (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : VideoHandler
encoder : Lavc58.106.100 dvvideo
timecode : 00:00:00;00
Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69),48000 Hz,1 channels,s32 (24 bit),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:2(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:3(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:4(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:5(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:6(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:7(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:8(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:9(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:10(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:11(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:12(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:13(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:14(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:15(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:16(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
Stream #0:17(eng): Data: none (tmcd / 0x64636D74),0 kb/s
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : VideoHandler
timecode : 00:00:00;00
Unsupported codec with id 0 for input stream 17
这是输入文件中的ffprobe:
ffprobe version N-99345-g904ab5365c Copyright (c) 2007-2020 the FFmpeg developers
built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
configuration: --enable-filter=qrrabbit --enable-opengl --enable-gpl --enable-libx264 --extra-libs='-lqrencode -lpthread'
libavutil 56. 59.100 / 56. 59.100
libavcodec 58.106.100 / 58.106.100
libavformat 58. 58.100 / 58. 58.100
libavdevice 58. 11.102 / 58. 11.102
libavfilter 7. 87.100 / 7. 87.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
libpostproc 55. 8.100 / 55. 8.100
Input #0,from 'Rastreator 20 sec TELEVISA 1.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2020-02-29T22:07:42.000000Z
Duration: 00:00:20.05,bitrate: 133935 kb/s
Stream #0:0(eng): Video: dvvideo (dvh6 / 0x36687664),top coded first (swapped)),30k tbn,29.97 tbc (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Video Media Handler
encoder : DVCPRO HD 1080i60
timecode : 00:00:00;00
Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.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 : 2020-02-29T22:07:42.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 : 2020-02-29T22:07:42.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 : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
timecode : 00:00:00;00
Stream #0:5(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
timecode : 00:00:00;00
Stream #0:6(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
timecode : 00:00:00;00
Stream #0:7(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
timecode : 00:00:00;00
Stream #0:8(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
timecode : 00:00:00;00
Stream #0:9(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
timecode : 00:00:00;00
Stream #0:10(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
timecode : 00:00:00;00
Stream #0:11(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
timecode : 00:00:00;00
Stream #0:12(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
timecode : 00:00:00;00
Stream #0:13(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
timecode : 00:00:00;00
Stream #0:14(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
timecode : 00:00:00;00
Stream #0:15(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
timecode : 00:00:00;00
Stream #0:16(eng): Audio: pcm_s24le (in24 / 0x34326E69),1152 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Apple Sound Media Handler
timecode : 00:00:00;00
Stream #0:17(eng): Data: none (tmcd / 0x64636D74),0 kb/s (default)
Metadata:
creation_time : 2020-02-29T22:07:42.000000Z
handler_name : Time Code Media Handler
timecode : 00:00:00;00
Unsupported codec with id 0 for input stream 17
解决方法
有条件地映射所有非视频流(即,如果存在则包括在内)。复杂过滤图的输出会自动映射到第一个输出,因此不需要手动映射。复制除视频之外的所有流。您可以将一个叠加层实例用于多个时间范围。
ffmpeg -i in.mov -i icon.png -filter_complex "[0][1]overlay=5:21:enable='between(t,2,3)+between(t,4,5)+between(t,6,8)'" -map 0:a? -map 0:s? -pix_fmt yuv422p -r 30000/1001 -c copy -c:v dvvideo -b:v 115084915 -maxrate 115084915 -minrate 115084915 -top 1 -color_primaries bt709 -color_trc bt709 -colorspace bt709 -vtag dvh6 -y out.mov