懂 IOS 开发的尽量瞧瞧,现在有这么个问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
therethere
V2EX    程序员

懂 IOS 开发的尽量瞧瞧,现在有这么个问题

  •  
  •   therethere 2017-04-18 11:34:34 +08:00 5973 次点击
    这是一个创建于 3102 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1.我们数据存储用的亚马逊 s3 , bucket 里面存储的都是视频,但是有的是有 mp4 后缀的,有的没有。这是问题 1
    2.我们用了亚马逊 cdn , http://xxx.cloudfront.net 用浏览器打开这种地址会跳转到一个 IP ,类似这样,比如文件是
    http://xxx.cloudfront.net/a_1.mp4 会跳转到 http://ip/xxx.cloudfront.net/a_1.mp4.

    然后结果就是 android 没有任何问题, IOS 那边就是播放不了,开发人员说的是 他只是把链接传给 ios 播放器,播放不了他也没办法。让服务器改成 mp4 后缀,而且不能给 cdn 地址给 ios 端,用原始地址。。。这个求个解释
    29 条回复    2017-06-09 18:00:10 +08:00
    lion9527
        1
    lion9527  
       2017-04-18 11:44:22 +08:00
    要 iOS 换个第三方播放器呗
    cevincheung
        2
    cevincheung  
       2017-04-18 11:47:06 +08:00
    分明就是不相自己再多一个步骤。
    ios 下 ffmpeg 又不是不能用。源码开放的。
    byfar
        3
    byfar  
       2017-04-18 11:53:04 +08:00
    不懂 ios 开发,不过不是要用 https?
    skylancer
        4
    skylancer  
       2017-04-18 12:26:35 +08:00
    分明就是你那个 iOS 不想干活要偷懒
    luwu1991
        5
    luwu1991  
       2017-04-18 12:43:18 +08:00 via iPhone
    不是不能播放吧,只是 iOS 现在不能用 IP 和服务器通信,必须是域名。这个是苹果的上架要求。
    DSKcpp
        6
    DSKcpp  
       2017-04-18 12:45:51 +08:00
    我的记得 AVPlayer 播放视频要有后缀,不然放不了
    用第三方可破
    therethere
        7
    therethere  
    OP
       2017-04-18 12:52:13 +08:00
    我是觉得,流媒体播放应该和后缀没关系,有点郁闷
    zyq2280539
        8
    zyq2280539  
       2017-04-18 13:13:32 +08:00
    可能跟播放器有关系吧,多试试其他播放器的框架呢
    xi_lin
        9
    xi_lin  
       2017-04-18 13:39:50 +08:00
    @therethere 你们这不是在线流媒体播放吧?不是固定的文件么?
    crashX
        10
    crashX  
       2017-04-18 13:57:04 +08:00   1
    ffmpeg 的授权协议很严格,楼上站着说话不腰疼的有几个完全按照协议要求开源的?
    grayon
        11
    grayon  
       2017-04-18 13:58:31 +08:00
    第三方播放器
    therethere
        12
    therethere  
    OP
       2017-04-18 14:23:29 +08:00
    自带的播放器不行,是吧?
    therethere
        13
    therethere  
    OP
       2017-04-18 14:24:33 +08:00
    都是同一个数据连接, android 就没问题, android 那边说也是用 google 自带的播放器
    beimenjun
        14
    beimenjun  
    PRO
       2017-04-18 15:05:53 +08:00
    这个如果能确定自己 bucket 里的文件都是 mp4 结尾的,就在传值进去之前做下验证吧。
    onevcat
        15
    onevcat  
       2017-04-18 15:09:58 +08:00
    如果跳转之后的 http://ip/xxx.cloudfront.net/a_1.mp4 直接扔给 AVPlayer 能正确播放的话,就说明视频本身没问题,是跳转的问题咯。要是最终的视频地址也播放不了就再另说...
    onevcat
        16
    onevcat  
       2017-04-18 15:13:20 +08:00
    如果确定是 CDN 给的 Content-Type 的 header 里没有给出正确的 MIME type 的话,要是能确定所有的 request 文件类型都一致的话,可以自己加一个 Content-Type 然后再喂给 AVPlayer 就好。
    robinshi2010
        17
    robinshi2010  
       2017-04-18 15:15:38 +08:00
    虽然我不懂。但是我觉得喵神说的对。手动滑稽。
    linKnowEasy
        18
    linKnowEasy  
       2017-04-18 16:04:27 +08:00
    喵神说的对 +1.
    问题 1. 没有后缀的问题. http://ip/xxx.cloudfront.net/a_1 直接丢给播放器. 理论上播放器应该也能播放的吧. 不能的话. 应该也只能确保 bucket 都是有 mp4 后缀。
    问题 2. 如果播放器能播放 http://ip/xxx.cloudfront.net/a_1.mp4 , 让 iOS 开发人员在播放器请求 http://xxx.cloudfront.net/a_1.mp4 , 拿到 跳转的地址. 再去丢给播放器。 这个理论上应该可行吧 , (需要拦截 http 请求?。 判断 url 是否含有 ip ?)。
    Jacky001
        19
    Jacky001  
       2017-04-18 16:29:20 +08:00
    我来捣个乱, uiwebview+html5
    xdream86
        20
    xdream86  
       2017-04-18 16:39:30 +08:00
    你倒是留一个真实的 MP4 资源测试地址啊,那些待业的 iOS 开发工程师没准还可以帮你测一测
    ZeoKarl
        21
    ZeoKarl  
       2017-04-18 17:54:04 +08:00
    @onevcat #16 再次活捉喵神
    HelloiWorld
        22
    HelloiWorld  
       2017-04-18 17:54:24 +08:00
    #20 +1. 还有这种上班没事刷帖的=_=
    therethere
        23
    therethere  
    OP
       2017-04-18 17:55:19 +08:00
    therethere
        24
    therethere  
    OP
       2017-04-18 18:00:31 +08:00
    @onevcat ios 人员说,播放的时候不能给 avplayer 传 content-type 。。。只能传 url 。
    Shvier
        25
    Shvier  
       2017-04-18 18:19:07 +08:00
    @therethere - -感觉贵司的 iOS 人员不太了解 http 这些啊(虽然我也不是很了解), AVPlayer 确实只能传 URL ,但是在线播放一定会有 request ,喵神的意思是修改 request 里的请求内容,至于拿到 request 有很多方法,比如可以通过 AVAssetResourceLoaderDelegate 协议对 request 进行拦截巴拉巴拉。
    Shvier
        26
    Shvier  
       2017-04-18 18:31:42 +08:00
    @therethere #25 另外楼上给的链接我试了试,确实无法直接播放,抓包观察 Content-Type 是空的,下载完成存到本地,没有扩展名导致不能播放,手动添加扩展名可以播放。
    yiios
        27
    yiios  
       2017-04-18 18:49:29 +08:00   1
    如果只是格式问题的话 我宁愿写个方法 把这种格式过滤一下
    therethere
        28
    therethere  
    OP
       2017-04-19 10:48:21 +08:00
    @Shvier 链接确实有的是空的,有的不是 video/mp4 。我现在就是在写个脚本,批量修改 s3 里面的 content-type
    mooczz
        29
    mooczz  
       2017-06-09 18:00:10 +08:00
    所以,讨论的半天还是没结果,最合理的是用第三方播放器,嗯,我也遇到了这个问题
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     909 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 20:43 PVG 04:43 LAX 13:43 JFK 16:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86