gpt4 book ai didi

ios - xcode 中来自 pocketcast 的流媒体技术

转载 作者:行者123 更新时间:2023-11-29 10:53:58 26 4
gpt4 key购买 nike

我的客户问我是否可以下载视频并在下载一点后进行流式传输,就像袖珍广播一样。他的理由是,这将允许他将视频文件存储在诸如 godaddy 之类的网站上,而无需将文件流式传输到通常需要专用服务器的手机。

这可能吗?如果是的话,你知道我在哪里可以找到袖珍广播是如何做到的吗?目前,我的应用程序只能播放 mp4。

感谢观看,

马特

最佳答案

由于您的目标是 iOS,因此 HLS(HTTP 实时流媒体)是您的 friend :https://developer.apple.com/streaming/

请在此处查看我的回答以了解如何使用它:Simultaneously downloading and playing a song that is pieced together from multiple URLs

通过 Apple(或 FFMPEG)的 mediafilesegmenter 工具运行长电影非常容易,它会吐出许多小的 .ts 文件(MPEG 2 传输流)。然后您创建一个 list (一个 .m3u8 文件)来描述这些文件如何组合在一起(哪个 mediafilesegment 也会为您创建!)。然后,您只需将 list 文件和 .ts 文件放在托管服务提供商(如 GoDaddy)上,一切就绪。

例如,给定一个名为 test.mp4 的文件,首先使用 ffmpeg 将其转换为 .ts 文件:

ffmpeg -i test.mp4 -acodec copy -vcodec copy -bsf h264_mp4toannexb test.ts

然后用 mediafilesegmenter 把它变成一系列的 HLS segments(同样可以使用 ffmpeg segment muxer 来完成,但是 mediafilesegmenter 似乎更健壮):

mediafilesegmenter -t 3 test.ts

结果是一堆 3 秒的剪辑(这就是 -t 3 的意思)和一个名为 prog_index.m3u8 的 list 文件。内容如下:

#EXTM3U
#EXT-X-TARGETDURATION:3
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:2.99520,
fileSequence0.ts
#EXTINF:2.99520,
fileSequence1.ts
#EXTINF:2.99520,
fileSequence2.ts
#EXTINF:2.99520,
fileSequence3.ts
...
#EXTINF:0.37440,
fileSequence75.ts
#EXT-X-ENDLIST

只需将所有 .ts 文件和 .m3u8 文件放在网络服务器上,然后将 iOS 中的 AVPlayer 或 MPMoviePlayerController 指向 .m3u8 的 URL 即可获得出色的流媒体性能。

关于ios - xcode 中来自 pocketcast 的流媒体技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19230721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com