0

我被阻止尝试做某事,如果有人可以帮助我,我准备捐款:

我尝试将http://s.serero.free.fr/rolex.mp4视频和http://s.serero.free.fr/video.mp4视频合并到一个输出 mp4 文件中,我尝试了很长时间没有结果。

我想连接http://s.serero.free.fr/rolex.mp4 + http://s.serero.free.fr/video.mp4http://s.serero.free.fr/video。 mp4 + http://s.serero.free.fr/rolex.mp4

我尝试了ffmpeg命令行软件和mp4box命令行软件,我认为我没有好的方法。

我尝试将 http://s.serero.free.fr/video.mp4 转换为与 http://s.serero.free.fr/rolex.mp4相同的格式(反之亦然):

我用与http://s.serero.free.fr/video.mp4相同的帧速率转换了http://s.serero.free.fr/rolex.mp4

我用与http://s.serero.free.fr/video.mp4相同的视频比特率转换了http://s.serero.free.fr/rolex.mp4

我用与http://s.serero.free.fr/video.mp4相同的视频音频比特率转换了http://s.serero.free.fr/rolex.mp4

有人可以帮助我吗?

向我解释我的策略有什么问题?

4

2 回答 2

2

您的输入参数会有所不同,因此您必须在连接之前使它们相似。

  • rolex.mp4

    Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 835 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc (default)
    Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
    
  • video.mp4

    Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc), 1152x720, 1749 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
    Audio: mp3 (mp4a / 0x6134706D), 44100 Hz, stereo, s16p, 127 kb/s (default)
    

这个例子将使它们video.mp4更像rolex.mp4然后连接它们:

ffmpeg -i rolex.mp4 -i video.mp4 -filter_complex \
"[1:v]pad=1280:720:(ow-iw)/2:0,fps=25,format=yuv420p[v1]; \
 [0:v][0:a][v1][1:a]concat=n=2:v=1:a=1[v][a]" \
-map "[v]" -map "[a]" output.mp4

您实际上不需要声明fpsformat因为,正如concat 过滤器文档所述:

所有对应的流必须在所有段中具有相同的参数;过滤系统会自动为视频流选择常用的像素格式,为音频流选择常用的采样格式、采样率和通道布局,但其他设置,如分辨率,必须由用户明确转换。

...但是这样做将允许您手动选择“常用”设置,而不是依赖过滤器自动这样做并可能选择您不想要的设置。

于 2017-01-01T00:24:05.997 回答
0

感谢 LordNeckbeard 的出色回答,他只是在命令上犯了一个小错误,我只想解释一下:

如果我想将 video.mp4(1152X720) 与 Rolex.mp4(1280X720) 连接,我们必须了解“video.mp4”是主视频,因此要连接的视频必须具有完全相同的帧大小

因此,在执行此操作之前,您需要调整 rolex.mp4 视频的大小,如使用 ffmpeg 的 video.mp4 :

ffmpeg -i rolex.mp4 -s 1152x720 -c:a copy newrolexsized.mp4

没有 video.mp4 和 newrolexsized.mp4 帧大小相同,可以使用命令(spcifying pad=1152:720 => 主视频大小):

ffmpeg -i video.mp4 -i newrolexsized.mp4 -filter_complex "[1:v]pad=1152:720:(ow-iw)/2:0,fps=25,format=yuv420p[v1];[0:v ][0:a][v1][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" 输出。 mp4

于 2017-01-01T12:40:36.260 回答