Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Audio ffmpeg在录制视频时留下音频间隙_Audio_Video_Ffmpeg - Fatal编程技术网

Audio ffmpeg在录制视频时留下音频间隙

Audio ffmpeg在录制视频时留下音频间隙,audio,video,ffmpeg,Audio,Video,Ffmpeg,我试图将视频分为两部分,然后用ffmpeg重新组装,但最终的输出在片段的交汇处有一个小的音频故障。我使用以下命令将视频1.mp4分为两部分: ffmpeg-i1.mp4-ss00:00:00-t00:00:02-async11-1.mp4 及 ffmpeg-i1.mp4-ss00:00:02-t00:00:02-async11-2.mp4 一旦我有了这两个部分,我会将它们重新组合在一起: ffmpeg-f concat-i files.txt-c copy output.mp4 files.tx

我试图将视频分为两部分,然后用ffmpeg重新组装,但最终的输出在片段的交汇处有一个小的音频故障。我使用以下命令将视频1.mp4分为两部分:

ffmpeg-i1.mp4-ss00:00:00-t00:00:02-async11-1.mp4

ffmpeg-i1.mp4-ss00:00:02-t00:00:02-async11-2.mp4

一旦我有了这两个部分,我会将它们重新组合在一起:

ffmpeg-f concat-i files.txt-c copy output.mp4

files.txt正确列出了这两个文件。有人能告诉我问题出在哪里吗


谢谢

该故障可能是由于音频显示在中间

由于您正在对这些段进行编码,因此可以通过一个命令执行此操作:

ffmpeg -i 1.mp4 -filter_complex 
                "[0]trim=duration=2[v1];[0]trim=2:4,setpts=PTS-STARTPTS[v2];
                 [0]atrim=duration=2[a1];[0]atrim=2:4,asetpts=PTS-STARTPTS[a2];
                 [v1][a1][v2][a2]concat=n=2:v=1:a=1[v][a]"
       -map "[v]" -map "[a]" output.mp4

我有同样的问题大约3周了。 只需使用
sox

sox in1.mp3 in2.mp3 in3.mp3 out.mp3
当我将concat与
FFMPEG
一起使用时,它产生了12.5ms的音频间隔(我在使用
Audacity
时看到了它们)。(我不知道为什么)


对于您的情况,最好使用ffmpeg将音频和视频提取到两个单独的文件中,合并它们(使用ffmpeg的视频和使用sox的音频),然后将这些文件合并到一个容器(mp4)文件中

谢谢Mulvya。我运行了这个命令,它用我原来的6s视频创建了一个4秒的视频,没有任何音频间隙。我想我了解什么是音频启动示例,但我不了解您命令的参数。您能否解释或告诉我如何调整此命令以用作源1-1.mp4和1-2.mp4?非常感谢。首先,我将源代码的视频流拆分两次:
trim=duration=2
表示从
0
开始,并拆分一个2秒的片段
trim=2:4
表示从
t=2
拆分为
t=4
。我使用过滤器的音频版本对音频执行相同的操作。然后我使用过滤器将这些部分连接在一起。除非您需要,否则我不建议使用中间文件路由(
1-1.mp4,1-2.mp4
),并且setpts过滤器用于重置剪切段的时间戳。由于FFmpeg在一般情况下是如何工作的,所以需要。好吧,我真的必须使用中间文件。因为这段代码的真正目的是按顺序连接几个文件。假设我的用户可以从不同的场景中选择制作他的最终视频,这就是我打算做的。这个答案可以更新吗?已经两年了,这个问题仍然没有真正的答案。