首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试将11秒的黑色视频连接到5分钟视频的结尾。在输出流错误中获取非单调的DTS

尝试将11秒的黑色视频连接到5分钟视频的结尾。在输出流错误中获取非单调的DTS
EN

Stack Overflow用户
提问于 2020-01-15 06:03:34
回答 1查看 72关注 0票数 0

我有一个智能手机拍摄的视频,大小是3840x2160@57.74。最初,它恰好是5分钟长。我用一个5分11秒的音乐文件替换了音频,使用ffmpeg -i video.mp4 -i audio.mp3 -c copy -map 0:v:0 -map 1:a:0 output.mp4我本以为最后一帧是11秒的黑色,但视频输出在最后一帧冻结了11秒。肯定有什么奇怪的事情发生了,因为当我尝试上传到youtube时,它只看到了前5分钟。最后10秒的音频被丢弃。

我试着用ffmpeg -f lavfi -i color=c=black:s=uhd2160:r=57.74 -t 11 -pix_fmt yuv420p blk2.mp4制作第二个黑色剪辑。当我尝试用ffmpeg -f concat -safe 0 -i list.txt -c copy teacup6.mp4连接这两个文件时,我得到了一个巨大的错误列表,例如[mp4 @ 00000166fda994c0] Non-monotonous DTS in output stream 0:0; previous: 27002920, current: 3728954; changing to 27002921. This may result in incorrect timestamps in the output file.,大约相当于11秒的帧,所以基本上整个11秒的黑色剪辑。当我在VLC中播放它时,它变黑了,但我怀疑它实际上并没有处理/播放11秒的好的黑色视频,因为如果我沿着曲目时间线点击,视觉故障开始在画布上发生。

下面是ffmpeg告诉我的关于帧速率、像素格式等输入和输出的信息。

[mov,mp4,m4a,3gp,3g2,mj2 @ 00000239e6cb2880] Auto-inserting h264_mp4toannexb bitstream filter Input #0, concat, from 'list.txt': Duration: N/A, start: -0.023021, bitrate: 72244 kb/s Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 3840x2160, 71994 kb/s, SAR 1:1 DAR 16:9, 57.74 fps, 59 tbr, 90k tbn, 180k tbc Metadata: handler_name : VideoHandle Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 250 kb/s Metadata: handler_name : SoundHandler Output #0, mp4, to 'teacup5.mp4': Metadata: encoder : Lavf58.35.102 Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 71994 kb/s, 57.74 fps, 59 tbr, 90k tbn, 90k tbc Metadata: handler_name : VideoHandle Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 250 kb/s Metadata: handler_name : SoundHandler Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) Press [q] to stop, [?] for help

或者,我尝试制作一个黑色的3840x2160 png文件,并创建一个11秒的幻灯片。结果也好不到哪里去。我尝试了11秒@ 57.74fps的单个图像,我还尝试了该图像的循环幻灯片放映,以57.74fps在每一帧上循环。我应该注意到,无论是幻灯片还是颜色生成器,11秒黑色的文件大小大约为160KB。奇怪的是,我认为它很小,但我把它归功于一个好的压缩算法。

我试着在达芬奇分辨率16.1中这样做,但视频不能播放。我也找不到一种方法来保持与免费版本相同的不同寻常的57.74帧速率,所以这是不可取的。我尝试使用手闸重新处理,但它抛出了一个错误。手闸处理的视频文件的输出也会卡在视频的最后一帧上,而不是变成黑色。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-15 06:42:57

tpad filter是最简单的方法:

代码语言:javascript
复制
ffmpeg -i video.mp4 -i audio.mp3 -filter_complex "[0:v]tpad=stop=-1[v]" -map "[v]" -map 1:a -c:a copy -shortest output.mp4

有关其他选项,请参阅上面的链接,例如如何更改空白框架的颜色,或者如何重复最后一个框架而不是制作纯色。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59742426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档