我正在尝试将两个视频与 ffmpeg 连接起来。没有什么花哨; 我只想要一个由视频 A 和视频 B 组成的视频。
我已经尝试了如何在 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
. 即使在那些被引用为有效的情况下,我也会收到“匹配没有流”的消息。