我有以下文件:
01.mp4
G:\>ffmpeg -i 01.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '01.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf54.63.104
Duration: 00:14:21.42, start: 0.000000, bitrate: 3746 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720, 3616 kb/s, 25 fps, 25 tbr, 25k tbn, 50k tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(unk): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 123 kb/s (default)
Metadata:
handler_name : SoundHandler
02.mp4
G:\>ffmpeg -i 02.mp4 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '02.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isom
creation_time : 2013-12-06 17:49:10
encoder : FAAC 1.26.1 (Apr 29 2008) UNSTABLE
Duration: 00:01:21.75, start: 0.023220, bitrate: 120 kb/s
Stream #0:0(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 119 kb/s (default)
Metadata:
creation_time : 2013-12-06 17:49:10
03.mp4
G:\>ffmpeg -i 03.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '03.mp4':
Metadata:
major_brand : M4V
minor_version : 0
compatible_brands: M4V M4A mp42isom
Duration: 00:20:31.98, start: 0.000000, bitrate: 1928 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 1796 kb/s, 25 fps, 25 tbr, 25k tbn, 50k tbc (default)
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
我必须将文件02.mp4
和附加03.mp4
到01.mp4
;这样,在第一个视频结束后(在00:14:21.42);下一个文件(只有音频,没有视频流)将播放(空/白/黑背景?)。音频持续时间约为 2 分钟,之后第三个文件将开始播放。
附言:请不要建议创建播放列表。我想要一个 mkv/mp4 文件。该文件将分发给其他几个人,告诉每个人顺序等很烦人
我已经玩过了MKVToolNix和FFmpeg并设法调整大小并合并两个视频文件(01.mp4
和03.mp4
);但我仍然不知道如何继续插入带有空白视频帧的音频流......
FFmpeg 信息
ffmpeg version N-58869-gae33007 Copyright (c) 2000-2013 the FFmpeg developers built on Dec 7 2013 22:01:45 with gcc 4.8.2 (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-libmodplug --enable-libmp3lame --ena ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp eex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aa cenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavp ack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib libavutil 52. 56.100 / 52. 56.100 libavcodec 55. 45.100 / 55. 45.100 libavformat 55. 22.100 / 55. 22.100 libavdevice 55. 5.102 / 55. 5.102 libavfilter 3. 92.100 / 3. 92.100 libswscale 2. 5.101 / 2. 5.101 libswresample 0. 17.104 / 0. 17.104 libpostproc 52. 3.100 / 52. 3.100
答案1
我认为您可以在此处使用 lavfi 输入,并带有过滤颜色。以下是示例命令:
ffmpeg -i 1.mp4 -i 2.mp4 -i 3.wav -f lavfi -i "color=black:size=1920x1080:duration=40" \
-filter_complex "[0:v][1:v][3:v]concat=n=3[out_video];[0:a][1:a][2:a]concat=n=3:v=0:a=1[out_audio]" \
-y -map [out_audio] -map [out_video] out.mp4
其中 1.mp4 和 2.mp4 是带视频的文件,3.wav 是带音频的文件。lavfi 输入的大小应与 1.mp4 和 2.mp4 的视频大小相同。lavfi 输入的持续时间应与 3.wav 文件的持续时间相同。
希望能帮助到你。