使用FFmpeg连接四个MP4视频文件

时间:2017-06-28 08:57:38

标签: ffmpeg mp4 h.264

我尝试使用FFmpeg连接四个MP4视频文件。 (最新版本)这四个mp4视频不同于一般的mp4视频,并且有特定的编解码器,我在K-Lite Mega Codec Pack 13.1.0的帮助下在Windows Media Player中播放。

MediaInfo的一个文件(所有四个文件具有相同的编解码器)的编解码信息:

General

Complete name               : Testing - 1.mp4
Format                      : MPEG-4
Format profile              : Base Media
Codec ID                    : isom (mp41/avc1)
File size                   : 59.4 MiB
Duration                    : 3 min 47 s
Overall bit rate mode       : Variable
Overall bit rate            : 2 196 kb/s
Writing application         : vlc 2.2.4 stream output
Comment                     : QuickTime 6.0 or greater

Video

ID                          : 2
Format                      : AVC
Format/Info                 : Advanced Video Codec
Format profile              : High@L3
Format settings, CABAC      : Yes
Format settings, ReFrames   : 3 frames
Codec ID                    : avc1
Codec ID/Info               : Advanced Video Coding
Duration                    : 3 min 47 s
Bit rate mode               : Constant
Bit rate                    : 2 000 kb/s
Width                       : 720 pixels
Height                      : 576 pixels
Display aspect ratio        : 5:4
Frame rate mode             : Constant
Frame rate                  : 25.000 FPS
Standard                    : PAL
Color space                 : YUV
Chroma subsampling          : 4:2:0
Bit depth                   : 8 bits
Scan type                   : Progressive
Bits/(Pixel*Frame)          : 0.193
Stream size                 : 54.1 MiB (91%)

Audio

ID                          : 1
Format                      : AAC
Format/Info                 : Advanced Audio Codec
Format profile              : LC
Codec ID                    : 40
Duration                    : 3 min 47 s
Source duration             : 3 min 46 s
Bit rate mode               : Variable
Bit rate                    : 192 kb/s
Maximum bit rate            : 294 kb/s
Channel(s)                  : 2 channels
Channel positions           : Front: L R
Sampling rate               : 48.0 kHz
Frame rate                  : 46.875 FPS (1024 spf)
Compression mode            : Lossy
Stream size                 : 5.13 MiB (9%)
Source stream size          : 5.13 MiB (9%)

要连接的MP4视频文件是"测试 - 1.mp4","测试 - 2.mp4","测试 - 3.mp4"和"测试 - 4.mp4"。

我需要使用FFmpeg的连接方法将这四个MP4文件连接成一个MP4文件。

首次尝试(使用Concat Demuxer):

FFmpeg -f concat -safe 0 -i "F:\New Text Document.txt" -c copy E:\Testing.mp4

文件连接成一个MP4文件,其中包含来自FFmpeg的多个错误和警告。

  

输出流中的非单调DTS

     

SPS NALU丢失或无效,结果流可能无法播放

使用Windows Media Player在连接文件上方播放时,会出现错误

  

网络太忙,无法以原始质量播放文件

但该文件实际上位于本地硬盘中。

寻求选项不起作用(即使在VLC媒体播放器中)和Windows资源管理器显示错误的持续时间,如3小时54分钟,应该是15分05秒。

第二次尝试(使用Concat Demuxer):

FFmpeg -f concat -safe 0 -i "F:\New Text Document.txt" -vcodec copy -acodec copy -crf 0 E:\Testing.mp4

然后文件连接成功并在Windows Media Player和VLC媒体播放器中播放没有任何错误。这里唯一的问题是文件非常大,大小约为1.2GB,因为Constant Rate Factor设置为0以停止WMP网络相关错误。

注意:连接之前(四个源文件)在两个播放器中播放都没有任何错误,但它们的大小也适中。正如MediaInfo所示,"测试 - 1.mp4"是59.4 MB,而不是巨大的尺寸。

当我加入那些使用EasiestSoft Video / Audio Joiner 4.7的文件时,文件在播放时不会产生任何错误(我的意思是一切正常,但我需要一个像FFmpeg这样的命令行工具批量处理多个视频),但是在5.0版本中,它似乎产生了这个网络相关的错误(这可能是程序错误,我认为它重新编码,即使我检查不要重新编码复选框)。

使用FFmpeg可以使这个连续的MP4文件更小(大约四个源文件的总大小),并使其能够在两个播放器中播放,而不会出现任何网络相关问题或不正确的持续时间问题。

0 个答案:

没有答案