我目前正在尝试连接 3 个没有音频流的视频并在同一步骤中添加音频文件。
我创建了这个命令来完成这项工作:
ffmpeg -y -r 30 -i data\intro.mp4 -vcodec ppm -f image2pipe -i data\render.ppm -i data\outro.mp4 -i "data\I could be the one.mp3" -c:v libx264 -crf 18 -preset slow -pix_fmt yuv420p -c:a copy -filter_complex "[0:0] [1:0] [2:0] concat=n=3:v=1:a=0 [v]" -map [v] -map 3:0 -shortest -metadata title="Development of BrainStoneMod" -metadata description="This is the development of the BrainStoneMod starting from 08th April, 2013" -metadata author="The_BrainStone" -metadata copyright="2013" -metadata year="2013" -metadata composer="" -metadata TBPM="" -metadata TDAT="" gource.mp4
这确实是一个很长的命令,但它满足了我的需求,直到我想在简介和结尾之间嵌入实际视频。
我收到了这个日志:
ffmpeg version N-51639-g7775992 Copyright (c) 2000-2013 the FFmpeg developers
built on Apr 5 2013 22:24:22 with gcc 4.8.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrn
b --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libr
tmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheo
ra --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-li
bvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --ena
ble-zlib
libavutil 52. 25.100 / 52. 25.100
libavcodec 55. 2.100 / 55. 2.100
libavformat 55. 1.100 / 55. 1.100
libavdevice 55. 0.100 / 55. 0.100
libavfilter 3. 49.100 / 3. 49.100
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'data\intro.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf55.1.100
Duration: 00:00:04.00, start: 0.000000, bitrate: 42 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720
[SAR 1:1 DAR 16:9], 38 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
Metadata:
handler_name : VideoHandler
[image2pipe @ 027f0a80] Stream #0: not enough frames to estimate rate; consider
increasing probesize
Input #1, image2pipe, from 'data\render.ppm':
Duration: N/A, bitrate: N/A
Stream #1:0: Video: ppm, rgb24, 1280x720, 25 tbr, 25 tbn, 25 tbc
Input #2, mov,mp4,m4a,3gp,3g2,mj2, from 'data\outro.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf55.1.100
Duration: 00:00:04.00, start: 0.000000, bitrate: 42 kb/s
Stream #2:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720
[SAR 1:1 DAR 16:9], 38 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
Metadata:
handler_name : VideoHandler
[mp3 @ 02757020] max_analyze_duration 5000000 reached at 5015510 microseconds
[mp3 @ 02757020] Estimating duration from bitrate, this may be inaccurate
Input #3, mp3, from 'data\I could be the one.mp3':
Metadata:
TBPM : 140
TDAT : 0000
composer : Kevin Als
Duration: 00:03:55.91, start: 0.000000, bitrate: 320 kb/s
Stream #3:0: Audio: mp3, 44100 Hz, stereo, s16p, 320 kb/s
[Parsed_concat_0 @ 028b20e0] Input link in1:v0 parameters (size 1280x720, SAR 0:
1) do not match the corresponding output link in0:v0 parameters (1280x720, SAR 1
:1)
[Parsed_concat_0 @ 028b20e0] Failed to configure output pad on Parsed_concat_0
我应该怎么办?
顺便说一句:这是我以前使用过的命令,效果很好:
ffmpeg -y -r 30 -i "data\I could be the one.mp3" -vcodec ppm -f image2pipe -i data\render.ppm -c:v libx264 -crf 18 -preset slow -pix_fmt yuv420p -c:a copy -map 1:0 -map 0:0 -shortest -metadata title="Development of BrainStoneMod" -metadata description="This is the development of the BrainStoneMod starting from 08th April, 2013" -metadata author="The_BrainStone" -metadata copyright="2013" -metadata year="2013" -metadata composer="" -metadata TBPM="" -metadata TDAT="" gource.mp4
有任何想法吗?
答案1
好吧,我通过将其分成两个命令来解决这个问题:
ffmpeg -y -r 30 -i data\intro.mp4 -r 30 -i data\outro.mp4 -r 30 -vcodec ppm -f image2pipe -i data\render.ppm -filter_complex "[0:0] [2:0] [1:0] concat=n=3:v=1:a=0:unsafe=1 [v]" -c:v libx264 -preset ultrafast -map [v] data\tmp.mp4
ffmpeg -y -r 30 -i data\tmp.mp4 -i "data\I could be the one.mp3" -c:v libx264 -crf 18 -preset slow -pix_fmt yuv420p -c:a copy -map 0:0 -map 1:0 -shortest -metadata title="Development of BrainStoneMod" -metadata description="This is the development of the BrainStoneMod starting from 08th April, 2013" -metadata author="The_BrainStone" -metadata copyright="2013" -metadata year="2013" -metadata composer="" -metadata TBPM="" -metadata TDAT="" gource.mp4
但是,难道没有可能一次性完成这一切吗?