我的高仿bilibili项目成长之路

作者: MichaelHuyp | 来源:发表于2016-07-27 11:02 被阅读26975次

    关于电脑上如何查看直播:

    • 首先确保你的电脑是否安装了Homebrew
    man brew
    
    • 如果没有安装,则在终端输入以下命令安装
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
    • 第一步
    brew tap homebrew/nginx
    
    • 第二步
    brew install nginx-full --with-rtmp-module
    
    • 第三步,在终端输入
    nginx
    
    • 第四步,打开浏览器打开http://localhost:8080 如果出现以下所示,那么环境就搭建好了
    demo
    • 第五步,在终端输入
    brew info nginx-full
    
    • 第六步,在终端 Command+F 搜索nginx.conf
    demo
    • 第七步,进入该路径,以文本编辑形式打开配置文件,直接在最后面插入以下代码
    rtmp {
        server {
            listen 1935;
            application rtmplive {
                live on;
                record off;
            }
        }
    }
    
    demo demo
    • 第八步,查看nginx版本号,在终端输入:
    nginx -v
    
    demo
    • 第九步,重启ngix,把版本号替换成你电脑的nginx的版本号
    /usr/local/Cellar/nginx-full/1.10.1/bin/nginx -s reload
    

    接下来就可以试下直播的效果了**

    • 下载VLC客户端
    demo
    • 打开项目代码,找到YPPhoneLiveViewController.m文件,将你电脑的ip替换到此处
    demo
    • 运行项目,点击个人信息界面的我要直播,然后点击开始直播,然后打开VLC客户端,然后File->open network->输入:rtmp://(你的ip):1935/rtmplive/room
    demo demo
    • 好了如果顺利了话。。。。 就可以测试一下直播了[]( ̄▽ ̄)*

    项目展示

    启动页

    推荐界面

    直播以及番剧界面

    基于ijkplayer的播放器

    写在最后

    • 希望能把这个项目写完,还有许许多多的功能点没有写,持续更新中...

    每天进步一点点... Bilibili - ( ゜- ゜)つロ乾杯~

    相关文章

      网友评论

      • 爱笑的忧郁大叔:你好,你这个之前都是swift2.0写的吧,现在Xcode好像会报swift错误
      • f55640ef1c25:楼主能把整个项目打包上传到百度云上吗?github上的各种错误不好解决
      • 飞鱼ll:大神有没有接口文档?
        飞鱼ll:没有刷新功能的,明白了,我一个一个找吧。
      • 9b1f48c27623:编译后爆出错误:
        The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This setting can be set in the build settings editor.
        请问怎么处理?
      • 67798e788591:请问你的直播数据源来自哪里?bilibili有开放API?
      • e824621:你这个项目给了我很大的启发,继续支持你
      • 田小北北:哥们, 跪求别考验我们的解错能力了, 一堆红叹号, 看着头疼啊, 跟swift 混编 就是坑, 能不能给个没错误的demo压缩包, 膜拜下demo
      • 牛掰1234567:里面这么多错误,怎么弄?
      • 牛掰1234567:怎么项目里面报了很多swift文件库里的错误?
      • 遮住眼睛的草纸:大神可以共享一份接口文档吗,谢谢,我也想动手了
      • GRIM:博主 我拉你的代码 但是几次都是编译有错 xcode8.3 能否扔一份你的能通过的给我 694130310@qq.com 感激不尽
      • 男人宫:大神,想用这个播放器,但是报错啊
      • 3f270e490cb7:直播这块,推送+播放,如果不在意延迟、不需要长时间播放、网络环境比较优异的话,难度不太高,如果需要对网络抖动处理,大批量机器适配的话,还是有些门槛的,举个简单的例子,好多android机器,对opengl支持不好,有的对opensl es支持不好。
        https://github.com/daniulive/SmarterStreaming 可以看看这个
      • ios肖:The project “Pods” has targets that contain source code developed with an earlier version of Swift.

        Choose “Convert” to update the source code in this project to Swift 3.

        This action can be performed later using “Convert to Current Swift Syntax” in the Edit menu.

        什么解决啊,哥们
      • ios肖:“Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly.
        哥们这个问题怎么解决啊?
      • Tate_code:代码规范跟我几乎一样,看起来跟看自己的项目一样, 赞
      • 46cf865d218f:终于修改成最后一个错误了!这个错误是啥原因?: 'binding_callback_thread_observer.hpp' file not found
      • 46cf865d218f:必须转化swift,且转换后好几十个错误!❌。
        类似这样的代码:public func analysis<Result>(ifSuccess: (T) -> Result, ifFailure: (Error) -> Result) -> Result {
        switch self {
        case let .Success(value):
        return ifSuccess(value)
        case let .Failure(value):
        return ifFailure(value)
        }
        }
        lc_cat:最后怎么处理的啊
      • bdf080fa6676:能不能给个APK下载啊
      • 沙暴送葬:无法忍受,直接吐槽了:在GitHub上下载的只有代码,一个三方库都没有。用Cocoapod导入后发现一堆问题,而且是接二连三,修复一个后又来一个,最后实在受不了

        印象最深的是Realm,这三方我真是‘佩服’的五体投地,pod install的时间等得久还得开VPN,好不容易pod进来了build一下却搞出弄一堆配置问题,心累,放弃!
        沙暴送葬:@MichaelHuyp 非常感谢~
        MichaelHuyp:@iOS_Developer 链接: https://pan.baidu.com/s/1o8z3l94 密码: 2ug5
        MichaelHuyp:@iOS_Developer 这个项目很久没维护了。 明天我上传个百度云给你吧。
      • 51a9120806cc:Failed to create provisioning profile. The app ID "com.michaelhuyp.Wuxianda" cannot be registered to your development team. Change your bundle identifier to a unique string to try again.
        No profiles for 'com.michaelhuyp.Wuxianda' were found: Xcode couldn't find a provisioning profile matching 'com.michaelhuyp.Wuxianda'.
        Code signing is required for product type 'Application' in SDK 'iOS 10.0'

        真机调试不了错误,怎么搞 :pray:
      • a24df6838a47:666 做的真心很棒 加油
      • kosser小屋: // 每次滑动需要叠加时间
        _sumTime += value / 60; 为啥要除以60呢?
      • kosser小屋:感谢楼主分享的这个项目,我看到你代码里在播放器中根据水平滑动的长度除以60来计算快进的时间。可是为啥是60.。、?
      • kosser小屋:想问一下,在切换视频源的时候应该怎么做,场景就是,用户切换了电视剧的集数。 讲ijk = nil 然后重新创建吗? 我这样崩溃了。。
      • f880df0a921d:大神什么时候又开始更新呀
        MichaelHuyp:@缘分d 最近在学习其他东西。这个不会忘的 等过段时间更
      • justZero:一直觉得bilibili的APP做的特别棒!美女博主做的好厉害~给赞!
      • angelen:谢谢楼主写出那么好的代码,其次,我想问问:倒数第二张图是哪个美女来的,好想知道🙈
      • xrk_jyoy:pod install 报这个错是怎么回事呢? [!] Unable to find a specification for `LFLiveKit (~> 1.9.3)`
      • iSuAbner:项目下下来之rm -rf xcworkspace 然后pod install 成功之后还是跑之前的错误 就是The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.实在不是不动了 求大神帮忙~~
      • eb4c1821a4ae:大神 初学者 能不能给一份没有错误的源码
      • Timi:刚下了你的代码.... 感觉很厉害啊
        MichaelHuyp:@Timi_Dream 过奖了。 写的很仓促 还没来得及重构
      • qBryant:这个bili有点牛bi~~~mark,待学习! :+1:
      • 377986ae35d5:这个是啥错误
      • 377986ae35d5:PhaseScriptExecution [CP]\ Check\ Pods\ Manifest.lock /Users/cailufei/Library/Developer/Xcode/DerivedData/Wuxianda-dfquzqomajbmvqhdmbrkhraljxag/Build/Intermediates/Wuxianda.build/Debug-iphoneos/Wuxianda.build/Script-46B01DEB02BBD02F355DD75C.sh
        cd /Users/cailufei/Desktop/Bilibili_Wuxianda-master
        /bin/sh -c /Users/cailufei/Library/Developer/Xcode/DerivedData/Wuxianda-dfquzqomajbmvqhdmbrkhraljxag/Build/Intermediates/Wuxianda.build/Debug-iphoneos/Wuxianda.build/Script-46B01DEB02BBD02F355DD75C.sh
      • 小王爷我:大神,xcode7.31,运行报错。ReactiveCocoa.h文件里<ReactiveCocoa/EXTKeyPathCoding.h>找不到,但是这个文件的确有,请大神指教。
      • Link913:作者你好,看到你的代码ijk的播放器都用的是atomic,这样做是不是为了避免多个url播放的问题呢
        Link913:@SkyHarute 前辈我把直播解码使用IJKFFMoviePlayerController,结果直播可以解码.普通mp4视频无法播放,是不是应该使用别的类啊
        Link913:@MichaelHuyp :+1:
        MichaelHuyp:@SkyHarute 加锁 避免多线程同时修改。 我也是参照ijkplayer demo里面的写法
      • 烟佛经:赞一个
      • 丹徒:699999
      • 9f379392be88:最喜欢bilibilo
      • c79bb0131cc9:Result SDK 报错
        MichaelHuyp:@mabeple Xcode用7.3.1试下
      • NearMilk:pods 工程里面的LELiveKit 编译出错有碰见过么?,枚举类型那里开始就报Redefinition of 错误
        MichaelHuyp:@NearMilk 重新拉一下代码就好了。
        sjtupt:@NearMilk +1
        NearMilk:@NearMilk
      • NearMilk:那个Result这个第三方我在Podfile文件中没找到,然后pod update 更新以后 出现好多Result这个的错误,是我Result版本的问题还是什么吗?
        NearMilk:@MichaelHuyp 好吧,我是xocde7.2 我升级先,谢谢
        MichaelHuyp:@NearMilk 用xcofe7.3就可以了
      • sjtupt:最新的更新下来,拖入IJKMediaFramework.framework后,LFLiveKit里面报好多redefine的错啊。。。
        MichaelHuyp:@rrrrr1234445 已经修复了。重新拉一下代码
      • 03528f5c62f1:GPUImage.h找不到的小伙伴可以试试这样处理,把LFLiveKit中的GPUImage框架复制一份出来,然后自己手动加入自己的打开的工程中,我这样处理就可以了,


      • sayHellooX:楼主 为什么在podfile中把 #pod 'GPUImage' 注释掉呀,pod install 成功后报找不到GPUImage.h的错误呀,如果打开这个注释 重新pod install成功后,又报GPUImageContext.h找不到的错误了 这是怎么回事呢?谁解决了帮助回答下,感谢呢
      • 84a013fc045a:请问报找不到gpuimage.h文件找不到 怎么解决啊。我都已经全部pod update 下来了。
      • 2da70af4b0b0:大神 下了你的demo 但是cocopod 为灰色不能使用
      • 王_胖胖:跟楼上一样的pod install错误 :cold_sweat:
      • 088703a3f63b:下载之后先把作者云盘上的工具类也下载下来,直接拖到项目中,然后使用终端cd 项目路径,然后pod install 就可以看了。作者很牛,东西封装的也很不错,值得学习的地方很多。谢谢分享。
        MichaelHuyp:@胖嘟儿 不敢当。互相学习 共同进步
      • 751fc49dcbfd:视频根本点击不进去 没有点击事件
      • 500daf8f5063:b站的视频链接有加密的,请问博主怎么破解的
      • 卡农forever_love: The 'Pods-Wuxianda' target has transitive dependencies that include static binaries
        pod install后这样提示,还是没解决cocopods的问题,求大神指教
      • MichellRich:报错 IJKMediaFramework/IJKMediaFramework/IJKMediaFramework.h.h file not found
      • CTChan:GPUImage.h 没找到 怎么搞啊
      • CTChan:'GPUImage/GLProgram.h' file not found
      • 86f079ca8043:膜拜膜拜
      • 简单coder:@MichaelHuyp 代码看下来,觉得你的代码真的好规范....好想跟你学,能否开个群,让大家加一下,交流技术啊~~
      • 简单coder:一切步骤都按你说的做了,但是缺少一个GPUIimage/GLProgram.h什么的
        kinmo:@简单coder 我也遇到这个问题,现在的解决办法是哪里缺什么文件就往路径里面放这个文件。因为文件相互调用的问题,所以要一直添加来添加去的,请问楼主有没有更好的办法
        简单coder:@简单coder @MichaelHuyp
      • 酸三角:导入.framework文件了 也执行 pod install命令了。运行工程还是报错,报以下问题 'swift_name' attribute cannot be applied to this declaration
      • hu9134:@MichaelHuyp 一直报错,Result那两个文件报错,好长时间了没有解决掉,麻烦能不能大体知道一下,谢谢.是不是可以建一个QQ群,专门讨论这个项目?只是提个建议,跪求回复,谢谢
        MichaelHuyp:@hu9134 xcode版本问题 升级到7.3就好了。这个项目只是个雏形,就是业余时间写的小demo 没实际研究价值
      • 1728a0410c54:楼主能不能发一份不报错的,怎没有一个人下载下来是好的!!
        MichaelHuyp:@小啾啾 这个项目还没有写完。属于一个demo版本。等我真正写完了再上传一份正式代码到百度云。
      • 4bc347552fb5:pod install
        Unable to find a specification for `LFLiveKit

        pod search LFLiveKit
        [!] Unable to find a pod with name, author, summary, or descriptionmatching LFLiveKit

        我的版本 xcode 7.2 pod 1.0.1 请问这个什么问题呢?
      • 一个好人爱算数:你好作者大神,GPUImageContext.h file not found
        全部下载完成,就会有这个错误,感觉是LFLiveKit跟CPUImage里面的文件重复了,删掉GPUImage整个文件夹,项目可以编译,但无法安装。大神能解决一下这个问题吗?
        kinmo:@林栖谷隐 你好,GPUImageContext.h file not found这个问题怎么解决?删掉LFLiveKit里面的CPUImage重新pod?
        一个好人爱算数:@MichaelHuyp 终于调通了,但是只能在8.4的模拟器上面运行,9.3的不行,而且真机运行提示The application bundle does not contain a valid identifier.证书这些都不存在问题,换成另外一个工程,同样的id,是没有问题的。网上没有搜到有用的解决方法,楼主碰到过这个问题吗?
        MichaelHuyp:@林栖谷隐 LFLiveKit包含gpuimage
      • 大也:@MichaelHuyp 我点击直播 后界面出来了 也连接成功了但是就是没直播界面 不知道会不会是wifi的原因
        输出界面显示 [YPPhoneLivePreview.m:275行] debugInfo uploadSpeed: 0 KB/s
        我检查了下宿舍网络 发现没问题 但是还没查代码里面的原因 所以不知道问题出在哪里希望明天打打断点 查看代码 能得到些提示 好了 就这样 如果能的话希望大大抽个时间 一起探讨下 qq 568986318 郝仁
        大也:@dose_爽 是的 直接自己把需要的4个文件拷贝出来 然后把里面的pod文件的内容除了最后一段全拷贝出来 自己pod install 就可以
        dose_爽:@大也 你找到问题解决了的方式了?
        大也:中午想了一下 会不会是我用的是模拟器 直播调用的是摄像头 那就不行了 今天还有点事 明天再自己用真机试一次 希望学习的同学也注意下 这篇简书也是我朋友发给我的呢
      • 大也:

        按照 上面的 提示将podfile 文件第一句改成source 'https://github.com/realm/realm-cocoa.git' 运行后还是出现这样的错误 请求帮助

        AppledeMacBook-Pro:Bilibili_Wuxianda-master apple-$ pod install
        Cloning spec repo `realm` from `https://github.com/realm/realm-cocoa.git`

        Analyzing dependencies
        [!] An unexpected version directory `ObjectStore` was encountered for the `/Users/apple-/.cocoapods/repos/realm/Realm` Pod in the `Realm` repository.
        AppledeMacBook-Pro:Bilibili_Wuxianda-master apple-$
        MichaelHuyp:我的QQ 86812684 :blush:
        大也: @MichaelHuyp 希望有空帮我看下哈 ~~ 项目会用到 可是自己不了解也没做过 希望可以通过这个学习下
        大也:补充: 很认真的把前面的问题看了一遍 做了一下操作 还是不行
        错误原因如下
        AppledeMacBook-Pro:Bilibili_Wuxianda-master apple-$ pod repo update
        Updating spec repo `master`
        Updating spec repo `realm`
        $ /usr/bin/git pull --ff-only
        Already up-to-date.
        AppledeMacBook-Pro:Bilibili_Wuxianda-master apple-$ pod install
        Analyzing dependencies
        [!] An unexpected version directory `ObjectStore` was encountered for the `/Users/apple-/.cocoapods/repos/realm/Realm` Pod in the `Realm` repository.
        AppledeMacBook-Pro:Bilibili_Wuxianda-master apple-$
      • 游城十代2dai:大神, 求加好友~新手挑战难度 ,.,魔仿哔哩哔哩...好难啊
      • yanglhan:冲突,一直提示:#import <GPUImage/GLProgram.h> #import "GPUImageFilter.h" 文件找不到
      • KennyHito:有没有安装Homebrew的详细步骤,因为我第一步就出错了?
      • 小草先生:楼主可能没把直播和点播中间的坑提出来,最近我也用ijkplayer 做了直播和点播,点播有些时候 currentPlaybackTime 有时候会忽大忽小 这是这个框架的一个BUG 要做逻辑处理,直播到最后时候 不能切换进度条到00:00秒 所以应该在结束前1-2秒就结束了点播状态
        小草先生:@MichaelHuyp 好的 楼主不知如何处理的地方 我们可以互相交流
        MichaelHuyp:@小草先生 是的。。 这个项目是业余时间断断续续写的,只写了一个大概的雏形。 最近换工作回家休息了几天,就把这个项目放到网上了。。等我稳定下来希望能把这个项目写完、优化。。
      • 3db26588aeef:怎么解决啊
        Installing MJRefresh (3.1.10)
        Installing Masonry (1.0.1)
        Installing ReactiveCocoa (4.1.0)
        Installing Realm (1.0.1)

        [!] Error installing Realm
        [!] /usr/bin/git clone https://github.com/realm/realm-cocoa.git /var/folders/p5/ydj5kzgj60n0v5bprdmytbt40000gn/T/d20160804-19665-zi35oi --template= --single-branch --depth 1 --branch v1.0.1

        Cloning into '/var/folders/p5/ydj5kzgj60n0v5bprdmytbt40000gn/T/d20160804-19665-zi35oi'...
        error: RPC failed; result=56, HTTP code = 200
        fatal: The remote end hung up unexpectedly
        fatal: early EOF
        fatal: index-pack failed
        kinmo:@童年的裸奔很豪放 git config --global http.postBuffer 24288000
        git config --list
        会输出:http.postbuffer=24288000
        再次执行:pod setup
        用这个可以解决
      • 3db26588aeef:Installing Masonry (1.0.1)
        Installing ReactiveCocoa (4.1.0)
        Installing Realm (1.0.1)

        [!] Error installing Realm
      • 748281001c95:给我发一个能正常运行的版本吧,我这pod install之后出现84个错!791590798@qq.com
      • c9ffb7e109a8:我想知道你的那个ijkplayer框架是你做过优化的吗?
      • d9557f883fd8:我只想知道接口怎么抓下来的
      • 韦恩时代:无论如何支持一下作者的开源精神!!!
      • zcaaron:作者,你好,下你的代码,运行报错,有三处,已经添加框架,请问,能有源码 吗?非常感谢!
      • coder_那一抹刚吹过的风:兄弟 可以啊,视频采集一直没啥思路。等晚上回去看看你的
      • 6ca793a7723c:把项目运行在 release模式下 报错...
      • 哈么么茶:为什么pod install后出现一个result.swift ?这个报错。realm也报2个错。
        davisjy:@哈么么茶 亲,你弄好了吗
        哈么么茶:@davisjy 我没回去呢,。昨晚发现的。这是OC项目啊。感觉要手动添加。
        davisjy:@哈么么茶 我也遇到这个问题了,请问你解决了吗
      • hrscy:赞
      • 布鲁马:你好,我也需要自己敲项目,可是服务端数据是一个问题?
        想知道博主的B站数据从哪里获取的?
      • BinBear:我pod问题解决了,可以运行,可是按照你的步骤安装nginx的时候,在niginx run的时候一直提示not found。能提供一份详细的安装教程?
        kinmo:@mrxc 解决了么
        sayHellooX:@coderBear 亲 你的'GPUImage/GLProgram.h' file not found 这个错误怎么解决的呀
      • f432508bcae0:'GPUImage/GLProgram.h' file not found 我pod install成功了,但是却一直报这个错
        f432508bcae0:@July丶ye 一直没看
        kinmo:@Mr噼里啪啦 这个问题解决了么
      • KennyMcCormick:'openssl/bn.h' file not found
      • Tommaso:添加你给的framework ,报错 #import <IJKMediaFramework/IJKMediaFramework.h> file not find,大神求指教
      • smirkk:大神,为什么下下来,我pod install后报ERROR: One of Realm's submodules is missing!
        MichaelHuyp:@风中的温柔 重新pod install试试。。 我这边可以运行
        smirkk:@MichaelHuyp 0.39
        MichaelHuyp:@风中的温柔 Pods版本是多少?~
      • BinBear: 'GPUImage/GLProgram.h' file not found 我pod install成功了,但是却一直报这个错
        84a013fc045a:@July丶ye 不要把注释删除,里面包含有了已经。
        kinmo:在pod file文件里面把#pod 'GPUImage'注释删掉,重新pod install,可以解决这个问题。
        不过我解决这个问题后又有一个新的问题:'GPUImageContext.h' file not found。。。
        明明已经把GPUImage pod下来了,还找不到文件....
        yanglhan:@coderBear 也是这样,楼主也没关注这个
      • gzfgeh:厉害
        BinBear:@gzfgeh 你能运行吗
      • b2efe7751b24:牛逼理提
      • 十一岁的加重:强悍 啊,
      • 01b85ef5c24a:YZDisplayViewController 首页这个有介绍的文章吗
      • 01b85ef5c24a:首页的YZDisplayViewController 这个控制器有什么使用禁忌吗?
      • 455e186e5a80:运行不了呢·git下载下来·pod install失败呢,提示
        Analyzing dependencies
        Pre-downloading: `Realm` from `https://github.com/realm/realm-cocoa.git`
        [!] Unable to find a specification for `UMengSocialCOM`
        MichaelHuyp:@bensco 再次pod install一下
        455e186e5a80:项目运行还是不行呢·我已经pod install成功了·但是一运行项目又报新错误了提示:diff: /../Podfile.lock: No such file or directory
        diff: /Manifest.lock: No such file or directory
        error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.@MichaelHuyp
        MichaelHuyp:@bensco 试着更新一下pods的repo文件 pod repo update
      • c96787cb33a7:要是有些代码的说明就更好了
        kevinLY:@MichaelHuyp 咱们的经历还有点相同 7月份上家公司倒闭 :smile:
        XuDaojie:@MichaelHuyp ...
        MichaelHuyp:@Luzy 上家公司倒闭。 最近忙着找工作 因此先把项目发上来 等稳定了 我会发一个详细的代码解释~

      本文标题:我的高仿bilibili项目成长之路

      本文链接:https://www.haomeiwen.com/subject/cqsojttx.html