我想从视频URL(mp4、m3u8、mpeg等)获取格式,以决定在我的应用程序中使用哪个播放器(AVPlayer或第三方)。一个选项是检查AVAsset(...).是否可播放,我现在正在使用这个,但我想改善我的逻辑时,AVPlayer不能使用。当我不能使用AVPlayer,然后我编码的视频使用ffmpeg,如果我可以有视频的格式(甚至更多的信息),我可以改善编码所做的ffmpeg。
jyztefdp1#
我将使用Regex表达式来分析URL并找到扩展名。您可以使用以下方法:.\w{3,4}($|?)
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)
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
希望这对你有帮助
g0czyy6m4#
如果您使用的是ffmpeg,则可以在url上执行ffprobe以获取codec_name。应该可以这样做:ffprobe test.mp4 -show_streams -show_entries stream=codec_type,codec_name, -of json -v quiet
ffprobe test.mp4 -show_streams -show_entries stream=codec_type,codec_name, -of json -v quiet
4条答案
按热度按时间jyztefdp1#
我将使用Regex表达式来分析URL并找到扩展名。
您可以使用以下方法:.\w{3,4}($|?)
wfypjpf42#
如果您不想使用Regex,那么以下代码应该可以做到这一点:
camsedfj3#
您可以使用类似下面的内容
希望这对你有帮助
g0czyy6m4#
如果您使用的是ffmpeg,则可以在url上执行ffprobe以获取codec_name。
应该可以这样做:
ffprobe test.mp4 -show_streams -show_entries stream=codec_type,codec_name, -of json -v quiet