我有一个*.mp4
文件,持续时间为2分钟。现在它的音轨从30 seconds upto 1.10 min
开始。 30s
之前和1.10min
之后的其余部分为空白。
现在的问题是当我尝试在videoview
或mediaplayer
播放时,它会从视频的开头而不是从实际位置播放音频。我在同一个结果的多部手机上试过这个。
当我在MXPlayer
或Windows(VLC)
中播放相同的视频时;它播放得当。
这个问题的解决方案是什么?
修改
我使用了-itsoffset
Ffmpeg
命令来获得上述视频。
ffmpeg -y -i a.mp4 -itsoffset 00:00:30 sng.m4a -map 0:0 -map 1:0 -c:v copy -preset ultrafast out.mp4
提前致谢。
答案 0 :(得分:0)
必须有一种更简单的方法,但以下工作对我来说还不错:
ffmpeg -y -i a.mp4 -itsoffset 00:00:30 sng.m4a -f lavfi -i "aevalsrc=0" -filter_complex "[1:a][2:a]amix=inputs=2:duration=first:dropout_transition=0, apad[out]" -map 0:v -map '[out]' -c:v copy -preset ultrafast -shortest out.mp4
它执行以下操作:
试一试;)
编辑:Jay的解决方案,使用“-async 1”,更容易,检查它!
答案 1 :(得分:0)
好吧最后我通过添加一个选项-async
ffmpeg -y -i a.mp4 -itsoffset 00:00:30 sng.m4a -map 0:0 -map 1:0 -c:v copy -preset ultrafast -async 1 out.mp4
默认情况下,音频/视频时间戳被拉伸以相互匹配;即使在给出itsoffset
之后,这也是我从音频开始的音频问题。
根据Ffmpeg Doc使用async 1
仅更正音频的初始时间戳。我知道这个选项已被弃用;但无论如何它解决了我的情况。