mp4无法播放
在使用FSPlayer播放网络mp4视频时,加载失败:
[FSPlayer-Log] [mov,mp4,m4a,3gp,3g2,mj2 @ 0x15dc01e00] type:'[38][1][175][8]' parent:'root' sz: 39098 7035210 7045640
[FSPlayer-Log] [mov,mp4,m4a,3gp,3g2,mj2 @ 0x15dc01e00] moov atom not found
[FSPlayer-Log] [AVIOContext @ 0x15d73e940] Statistics: 20876 bytes read, 1 seeks
[FSPlayer-Log] open failed:Invalid data found when processing input,err:-1094995529,[http://192.168.2.100:9091/Download/17bf650de8aae1d1bdd366b6bfbc25839003a3a4369a8b7f0c1ae6d3ea723494.mp4]
而使用AVPlayer则可以直接播放成功。
另外,在直接播放网络视频,视频格式为ts格式时,使用IJKPlayer,能正确获取视频时长,而使用FSPlayer,原视频时长为52秒,获取到的视频时长为5秒。
把播放有问题的视频发下。
把播放有问题的视频发下。
大佬这边有邮箱或者其他私聊联系方式吗?
发到这个邮箱 [email protected]
因视频文件涉密,无法发送,请大佬见谅。
我对ijkplayer与fsplayer进行了交叉对比,fsplsyer性能确实比已经停更数年的ijkplayer要优秀得多,在线播放几乎都是秒开,本地视频播放更优秀。
但是fsplayer确实还存在一些细节方面的问题,比如我遇到的问题:
-
在线播放一些非标
mp4时,会报moov not found导致视频播放失败,而ijkplayer和AVPlayer均可播放(这个可能是服务端的问题,服务跑在Android上面,app通过局域网http访问视频,而我本地用python模拟了一个http服务,视频也可以正常播放); -
对于单个
ts视频,fsplayer表现非常优秀,能开启硬件加速,精准seek也不会花屏,吊打ijkplayer。唯一存在的问题是视频时长获取不够精确,就像issue当中提到的那样,在开启硬解的时候,1分钟的视频获取到的视频长度为5秒,把硬解关了时长甚至变成了0,而ijkplayer虽然解析耗时更长,但是能获取到正确的视频时长。
我在项目中同时还集成了ffmpeg用作视频封面解析,但我在app中通过ffmpeg直接拉取视频时长,也存在相同的问题,指令参数如下,大佬有空的话可以指正一下:
let command = """
-v error \
-probesize 50M \
-analyzeduration 5000000 \
-timeout 10000000 \
-select_streams v \
-show_entries stream=duration \
-of default=noprint_wrappers=1:nokey=1 \
\(urlString)
"""
还有一个额外补充,我在大佬改造的ijkplayer中提了一个issue,ts视频seek进度必然崩溃#119。我另有一个猜测,就是ffmpeg对M系列芯片的支持不急Intel,在使用Intel芯片的Mac编译ijkplayer后,ts视频在seek进度时不会崩溃,大佬有空的话也可以研究一下。
Best wishes! from: 种植园牛马
@debugly @trimaximus 我也遇到了这个问题,有解决方法me?
关闭硬件加速试下。
@debugly 关闭硬件加速这个问题还是存在的。大佬,能够抽空修复一下这个问题?
我这无法复现问题,很难修复,你那边确认下跟什么有关系可以吗?
特定视频?特定设备?本地视频?在线视频?
我在TVOS的模拟器或者真机上通过SMB协议读取MP4的视频经常会出现这个问题。MP4的视频启播也非常的慢 @debugly