ios 如何从视频URL获取视频格式(任何类型,不仅仅是AVPlayer兼容)

qnyhuwrf  于 2022-11-19  发布在  iOS
关注(0)|答案(4)|浏览(220)

我想从视频URL(mp4、m3u8、mpeg等)获取格式,以决定在我的应用程序中使用哪个播放器(AVPlayer或第三方)。
一个选项是检查AVAsset(...).是否可播放,我现在正在使用这个,但我想改善我的逻辑时,AVPlayer不能使用。
当我不能使用AVPlayer,然后我编码的视频使用ffmpeg,如果我可以有视频的格式(甚至更多的信息),我可以改善编码所做的ffmpeg。

jyztefdp

jyztefdp1#

我将使用Regex表达式来分析URL并找到扩展名。
您可以使用以下方法:.\w{3,4}($|?)

wfypjpf4

wfypjpf42#

如果您不想使用Regex,那么以下代码应该可以做到这一点:

var url = "https://www.bruno.com/videos/video.mp4"

extension String {

    func fileExtension() -> String {
        return URL(fileURLWithPath: self).pathExtension
    }
}

let fileExtension = url.fileExtension()

print(fileExtension)
camsedfj

camsedfj3#

您可以使用类似下面的内容

let url = URL(string: "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4")

let result = url?.pathExtension
    //result will return the extension of the given path

希望这对你有帮助

g0czyy6m

g0czyy6m4#

如果您使用的是ffmpeg,则可以在url上执行ffprobe以获取codec_name。
应该可以这样做:
ffprobe test.mp4 -show_streams -show_entries stream=codec_type,codec_name, -of json -v quiet

相关问题