Video FFmpeg串联更改输入视频的持续时间和播放速度
我有两个使用FFmpeg concat解复用器连接的输入视频:Video FFmpeg串联更改输入视频的持续时间和播放速度,video,ffmpeg,Video,Ffmpeg,我有两个使用FFmpeg concat解复用器连接的输入视频: ffmpeg -f concat safe '0' -i /path/to/file.txt -c copy /path/to/output.mp4 file.txt包含以下两个文件路径: ffconcat version 1.0 file /path/to/input/file1.mp4 file /path/to/input/file2.mp4 不幸的是,连接的视频有两个问题: 第一个输入视频的持续时间为4秒。在输出视
ffmpeg -f concat safe '0' -i /path/to/file.txt -c copy /path/to/output.mp4
file.txt包含以下两个文件路径:
ffconcat version 1.0
file /path/to/input/file1.mp4
file /path/to/input/file2.mp4
不幸的是,连接的视频有两个问题:
- 第一个输入视频的持续时间为4秒。在输出视频中,在第二个输入视频开始之前,最后一帧冻结几秒钟
- 第二个输入视频的播放速度减慢,因此视频播放时间不是7秒,而是14秒或15秒左右
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'tmp/video/16382802.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.25.100
Duration: 00:00:04.43, start: 0.000000, bitrate: 644 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 360x640, 640 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : VideoHandler
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'tmp/video/16382805.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.25.100
Duration: 00:00:07.31, start: 0.023220, bitrate: 836 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 360x640, 669 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, 5.1, fltp, 158 kb/s (default)
Metadata:
handler_name : SoundHandler
编辑2-重拍视频时堆栈跟踪(音频丢失):
第一个视频的时基较小(并且没有音轨)。按如下方式重新包装,然后继续:
ffmpeg -i 16382802.mp4 -f lavfi -i anullsrc -c:v copy -video_track_timescale 30k -c:a aac -ac 6 -ar 44100 -shortest new.mp4
Concat demuxer要求视频的所有属性都相同:其中包括帧率和时基。显示两个文件的属性;使用ffprobe。我已经添加了两个视频的属性。帧率是如此的略有不同,但除非我弄错了,否则不足以减慢第二个视频?这太棒了,谢谢!只有两件事:我必须使用
-t
标志设置视频的持续时间,否则流似乎无限期地继续。我似乎也丢失了第二个视频的音轨。我可以看到音频编码选项在那里,所以有没有关于它为什么会丢失的想法?我已经添加了堆栈跟踪,从重拍视频开始,在第一个视频的原始探测中有音频跟踪,没有音频流。在新的读数中,有。;)移除-f lavfi-i anullsrc
ffmpeg -i 16382802.mp4 -f lavfi -i anullsrc -c:v copy -video_track_timescale 30k -c:a aac -ac 6 -ar 44100 -shortest new.mp4