我正在尝试使用ffmpeg合并多个视频,但是concat的输出是原始视频大小的一半。下面是ffmpeg命令,
ffmpeg -f concat -safe 0 -i input.txt -c copy video.mp4
输入文件中的所有视频均已从一个大文件中分离出来,并使用以下命令进行了转换,
ffmpeg -i file1.mp4 -vcodec libx264 -filter_complex "[0:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2[va]" -map "[va]" -strict experimental _file1.mp4
它们没有任何音频流,因此当我尝试连接这些视频时,输出文件的持续时间小于原始视频的总和。
下面是输入文件的元数据,
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file1.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.26.100
comment : vid:v09044eb0000bhte9i09pog20dbdosn0
genre : aweme_6659292261320329989
Duration: 00:00:15.12, start: 0.000000, bitrate: 797 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 794 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
handler_name : VideoHandler
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file2.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.26.100
comment : vid:v09044a50000bjqkic7smmqi0mu76m20
genre : aweme_6697675734137228038
Duration: 00:00:14.60, start: 0.000000, bitrate: 718 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 715 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : VideoHandler
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file3.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.26.100
comment : vid:v09044e50000bj0ajcqvfskris7ip2e0
Duration: 00:00:15.50, start: 0.000000, bitrate: 548 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 544 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : VideoHandler
答案 0 :(得分:2)
所有输入没有相同的时基。第一个拥有30k tbn
,而其他一个拥有15360 tbn
。
使用以下命令转换时基,然后与新文件连接:
ffmpeg -i file2.mp4 -c copy -video_track_timescale 30k file2-30k.mp4