如何解决在视频开头添加黑色和静音
嗨,我正努力在使用ffmpeg的视频开头添加黑色和静音。我做了很多搜索,但对我来说它们看起来太复杂了。 以下命令是我在视频结尾处添加黑色和静音的方法,现在如何将其调整到视频开头?
ffmpeg -i input.mp4 -f lavfi -i color=s=1920x1080:d=10 -filter_complex [0:v][1]concat -af [0]apad -shortest output.mp4
看来我需要使用 adelay 而不是 apad ,下面的命令对我来说很有意义,但音频不会延迟。
ffmpeg -i input.mp4 -f lavfi -i color=s=1920x1080:d=10 -filter_complex [1][0:v]concat -af [0]adelay=10 output.mp4
以下是输入信息和ffmpeg版本:
ffmpeg -i input.mp4
ffmpeg version 4.2.1-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
Input #0,mov,mp4,m4a,3gp,3g2,mj2,from 'input.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.29.100
Duration: 00:01:00.00,start: 0.000998,bitrate: 2526 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661),yuv420p(tv,bt709),1920x1080,2394 kb/s,24 fps,24 tbr,16k tbn,48 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D),44100 Hz,stereo,fltp,124 kb/s (default)
Metadata:
handler_name : SoundHandler
At least one output file must be specified
谢谢!
解决方法
有几种方法可以做到这一点。第一种方法既简单又容易,但是可以对主要视频进行重新编码。另一种方法稍微复杂一些,但是不对主视频进行重新编码,因此保留质量,对于长视频,此方法将更快。
tpad和adelay过滤器
ffmpeg -i input.mp4 -filter_complex "[0:v]tpad=start_duration=2[v];[0:a]adelay=2s:all=true[a]" -map "[v]" -map "[a]" output.mp4
如果您的ffmpeg
版本低于4.2,则将adelay=2s:all=true
更改为adelay=2000|2000
。
带有concat多路分配器的颜色和anullsrc滤镜
-
使2秒的黑色和静音与输入的属性相匹配。使用color和anullsrc过滤器:
ffmpeg -f lavfi -i color=size=1920x1080:rate=24:duration=2 -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 -video_track_timescale 16k -shortest black.mp4
-
使
join.txt
包含:file 'black.mp4' file 'input.mp4'
-
与concat demuxer串联:
ffmpeg -f concat -i join.txt -c copy output.mp4
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。