gpt4 book ai didi

video - 如何连接两个视频w。 ffmpeg——记录的代码不起作用

转载 作者:行者123 更新时间:2023-11-28 21:39:38 26 4
gpt4 key购买 nike

我正在尝试使用 ffmpeg 连接两个视频。没有什么花哨;我只想要一个视频,其中包含视频 A,紧接着是视频 B。

我试过 How to concatenate (join, merge) media files 中的代码在 Fedora 17 上全新构建且工作正常的 ffmpeg 1.2.1 安装上,但出现以下错误消息:

$ ffmpeg -i video_a.mov -i video_b.mov -filter_complex '[0:0] [0:1] [1:0] [1:1] concat=n=2:v=1:a=1 [v] [a]' -map '[v]' -map '[a]' output.mp4

ffmpeg version N-54271-g7f866c1 Copyright (c) 2000-2013 the FFmpeg developers
built on Jun 29 2013 11:05:42 with gcc 4.7.2 (GCC) 20120921 (Red Hat 4.7.2-2)
configuration: --enable-gpl --enable-nonfree --enable-pthreads --enable-libx264 --enable-libfaac --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib
libavutil 52. 37.101 / 52. 37.101
libavcodec 55. 17.100 / 55. 17.100
libavformat 55. 10.100 / 55. 10.100
libavdevice 55. 2.100 / 55. 2.100
libavfilter 3. 77.101 / 3. 77.101
libswscale 2. 3.100 / 2. 3.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 3.100 / 52. 3.100

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'v1221-MTQxMzcyNTIxODU2.mov':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2013-03-28 20:34:59
encoder : Mac OS X v10.8.3 (CMA 914, CM 926.87, x86_64)
encoder-eng : Mac OS X v10.8.3 (CMA 914, CM 926.87, x86_64)
Duration: 00:00:05.34, start: 0.000000, bitrate: 15837 kb/s
Stream #0:0(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 221 kb/s
Metadata:
creation_time : 2013-03-28 20:34:59
handler_name : Core Media Data Handler
Stream #0:1(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 15512 kb/s, 29.81 fps, 30 tbr, 600 tbn, 1200 tbc
Metadata:
creation_time : 2013-03-28 20:34:59
handler_name : Core Media Data Handler

Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'v1224-MTQxMzcyNTIxODg5.mov':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2013-03-28 20:36:28
encoder : Mac OS X v10.8.3 (CMA 914, CM 926.87, x86_64)
encoder-eng : Mac OS X v10.8.3 (CMA 914, CM 926.87, x86_64)
Duration: 00:00:04.13, start: 0.000000, bitrate: 15689 kb/s
Stream #1:0(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 221 kb/s
Metadata:
creation_time : 2013-03-28 20:36:28
handler_name : Core Media Data Handler
Stream #1:1(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 15446 kb/s, 29.79 fps, 30 tbr, 600 tbn, 1200 tbc
Metadata:
creation_time : 2013-03-28 20:36:28
handler_name : Core Media Data Handler

Stream specifier ':0' in filtergraph description [0:0] [0:1] [1:0] [1:1] concat=n=2:v=1:a=1 [v] [a] matches no streams.

其他一些注意事项:

  • 我正在处理的两个视频是用同一台相机拍摄的,因此宽高比或其他血腥视频细节应该没有任何问题。
  • 我可以用我的 ffmpeg 安装做其他事情,比如将其中一个视频从 .mov 转换为 .mp4(是的,我不得不用 faac 重新编译......),这似乎证明了 ffmpeg和视频。
  • 我尝试修改上述调用以在最后生成一个 .mov 文件,但我遇到了与以前相同的错误。
  • 我已经针对上述请求尝试了一些愚蠢的黑客技巧,例如连接同一视频的两个副本,以及来自网络其他地方的一些其他调用,这些调用涉及 filter_complex。即使在被引用为有效的那些上,我也会收到“匹配无流”的消息。

最佳答案

对于每个输入,首先指定视频流,然后指定音频流。因为您的视频流对于您的每个输入都是流 1,而您的音频流是流 0,那将是:

ffmpeg -i video_a.mov -i video_b.mov -filter_complex '[0:1] [0:0] [1:1] [1:0] 
concat=n=2:v=1:a=1 [v] [a]' -map '[v]' -map '[a]' output.mp4

或者更好的是,无论原始流的顺序如何,以下命令都应该起作用,并且如果有多个音频流,则将采用第一个音频流:

ffmpeg -i video_a.mov -i video_b.mov -filter_complex '[0:v] [0:a:0] [1:v] [1:a:0] 
concat=n=2:v=1:a=1 [v] [a]' -map '[v]' -map '[a]' output.mp4

关于video - 如何连接两个视频w。 ffmpeg——记录的代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17415770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com