如何让FFplay停止循环最后一个音频数据包?

时间:2015-07-01 15:13:07

标签: ffmpeg

我试图让FFplay在播放时停止(暂停)最后一张图片。

FFplay的默认行为似乎使用-loops周边,这会导致最后一个音频数据包循环 - 即使图像处于暂停状态。

有没有办法停止在文件末尾播放音频?

2 个答案:

答案 0 :(得分:1)

播放文件后可以使用-autoexit退出。更多信息请访问:https://ffmpeg.org/ffplay-all.html#Advanced-options

答案 1 :(得分:0)

您的音频流似乎比视频流短。您可以使用ffprobe -show_streams -print_format json -v quiet << INPUT FILE >>并查找每个流的持续时间长度。

我不确定你是否可以'循环'音频输入,但你可以连接(?)音频输入。我可以为您提供一个复杂的filter_complexconcat过滤器示例以与ffplay一起使用,但我认为您应该做的是将输入流重新编码为相同的长度。

ffmpeg -i << INPUT >> -filter_complex "[0:0]fifo[v];[0:1]fifo[a];[v][a][a][a][a]concat=n=4:v=1:a=4[v_out][a_out]" -map "[v_out]" -map "[a_out]" -c:v libx264 -q:v 1 -g 30 -b:v 750k -c:a libfdk_aac -b:a 192k -q:a 1 -ar 44100 -shortest output.mp4

注意:shortest标志将在最短流结束时停止编码(在这种情况下,可能是我们将音频流连接4次的视频同步)。