Android VideoView无法正确播放视频中的音频
我有一个持续时间为2分钟的Android VideoView无法正确播放视频中的音频,android,audio,video,ffmpeg,android-videoview,Android,Audio,Video,Ffmpeg,Android Videoview,我有一个持续时间为2分钟的*.mp4文件。现在它有音频曲目,从30秒到1.10分钟。其余30s之前和1.10min之后为空 现在的问题是,当我尝试在videoview或mediaplayer中播放它时,它会从视频的开始播放音频,而不是从它的实际位置播放音频。我在多部手机上试过,结果都是一样的 当我在MXPlayer或Windows(VLC)中播放同一视频时;它演奏得很好 这个问题的解决办法是什么 编辑 我使用了Ffmpeg的-itscaffset命令来实现上述视频 ffmpeg -y -i a.
*.mp4
文件。现在它有音频曲目,从30秒到1.10分钟。其余30s
之前和1.10min
之后为空
现在的问题是,当我尝试在videoview
或mediaplayer
中播放它时,它会从视频的开始播放音频,而不是从它的实际位置播放音频。我在多部手机上试过,结果都是一样的
当我在MXPlayer
或Windows(VLC)
中播放同一视频时;它演奏得很好
这个问题的解决办法是什么
编辑
我使用了Ffmpeg
的-itscaffset
命令来实现上述视频
ffmpeg -y -i a.mp4 -itsoffset 00:00:30 sng.m4a -map 0:0 -map 1:0 -c:v copy -preset ultrafast out.mp4
提前感谢。必须有一种更简单的方法来做,但以下方法对我来说很好:
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
它做了以下工作:
- 发出无声的声音
- 将其与移位的音频混合,直到m4a文件结束
- 默不作声
- 映射此和输入视频
- 选择最短持续时间(由于pad过滤器,视频持续时间和音频持续时间是无限的)
试试看;)
编辑:Jay的解决方案,使用“-async 1”,简单多了,检查一下吧 好,最后我只添加了一个选项-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
默认情况下,音频/视频时间戳被拉伸以相互匹配;这就是我的问题,即使在给出了itscoffset
之后,音频也从初始开始
根据使用async 1
仅更正音频的初始时间戳。我知道这个选项已被弃用;但无论如何它解决了我的问题。谢谢你;但是使用-async
选项解决了音频从初始开始而不是偏移的问题。我想在android中使用FFMPEG在VideoView中播放声音视频。你能指引我吗!我已经用android stdio配置了FFMPEG。