使用ffmpeg

时间:2018-02-08 14:29:12

标签: video ffmpeg

我有三个视频,我想将这个问题联合起来,但是当我测试一个特定的视频时,它会给我一个错误并导致生成的视频以一种奇怪的方式显示,一切都在快速移动在视频中,就像我向前看视频一样 这个代码我用来将文件一起添加到out.txt

文件中
file 'D:/Build/start.mp4'
file 'D:/Build/a.mp4'
file 'D:/Build/Song & Lyrics/2f.mp4'

我与ffmpeg一起使用的命令

ffmpeg -f concat -safe 0 -i out.txt -c copy -y go.mp4

我遇到了这个错误

    [mov,mp4,m4a,3gp,3g2,mj2 @ 05c0dbc0] Auto-inserting h264_mp4toannexb bitstream filter
Input #0, concat, from 'out.txt':
  Duration: N/A, start: 0.000000, bitrate: 280 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 155 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Metadata:
      creation_time   : 2018-02-08T13:25:49.000000Z
      handler_name    : ISO Media file produced by Google Inc. Created on: 02/08/2018.
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s
    Metadata:
      creation_time   : 2018-02-08T13:25:49.000000Z
      handler_name    : ISO Media file produced by Google Inc. Created on: 02/08/2018.
Output #0, mp4, to 'go.mp4':
  Metadata:
    encoder         : Lavf58.7.100
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 155 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 90k tbc
    Metadata:
      creation_time   : 2018-02-08T13:25:49.000000Z
      handler_name    : ISO Media file produced by Google Inc. Created on: 02/08/2018.
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s
    Metadata:
      creation_time   : 2018-02-08T13:25:49.000000Z
      handler_name    : ISO Media file produced by Google Inc. Created on: 02/08/2018.
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[mov,mp4,m4a,3gp,3g2,mj2 @ 05c38840] Auto-inserting h264_mp4toannexb bitstream filter
[mp4 @ 061b8f00] Non-monotonous DTS in output stream 0:0; previous: 624624, current: 88735; changing to 624625. This may result in incorrect timestamps in the output file.
[mp4 @ 061b8f00] Non-monotonous DTS in output stream 0:0; previous: 624625, current: 89247; changing to 624626. This may result in incorrect timestamps in the output file.
[mp4 @ 061b8f00] Non-monotonous DTS in output stream 0:0; previous: 624626, current: 89759; changing to 624627. This may result in incorrect timestamps in the output file.
.....

[mov,mp4,m4a,3gp,3g2,mj2 @ 05c38840] Auto-inserting h264_mp4toannexb   bitstream filtereed=69.7x
frame= 8991 fps=2903 q=-1.0 Lsize=    8378kB time=00:05:58.22 bitrate= 191.6kbits/s speed= 116x
video:2469kB audio:5625kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.500685%

那么问题是什么造成了这个错误。当我使用这个新的start.mp4与我在其他视频上尝试过的视频合并时,问题就出现了 的更新
我测试将视频转换为MTS格式,然后将它们作为类似问题的答案进行连接,但问题是当我将mp4视频转换为此格式时,文件的大小从6 MB到42 MB太大!所以,如果有更好的答案。或者使文件大小相同或更小的方法 答案的答案是here,但它运作良好 提前致谢

1 个答案:

答案 0 :(得分:3)

这次我试图解决问题并进行一些搜索,我注意到第一个视频与我之前测试的其他视频没有相同的帧/秒,我使用此命令使它们都有25个帧/秒

FFmpeg -y -i source.mp4 -r 25 -s 160x90 -c:v libx264 -b:v 3M -strict -2 -movflags fast start destination.mp4

这个命令当我开始添加它输出的输出视频没有任何问题时,我以相同的帧/秒和分辨率制作所有视频所以我需要确认这个信息是否正确,因为我不确定。但它对我有用