鱼C论坛

 找回密码
 立即注册
查看: 165|回复: 2

[Python] 怎么判断视频是宽频电脑版 or 手机版的?

[复制链接]
发表于 2024-5-28 07:21:21 | 显示全部楼层 |阅读模式
5鱼币
宽窄.png

用以下分辨率代码 区分不出来!

import subprocess
import json

def judge_video_resolution(video_path):
    # 执行ffprobe命令获取视频信息
    command = ['ffprobe', '-v', 'error', '-show_entries', 'stream=width,height', '-of', 'json', video_path]
    result = subprocess.run(command, capture_output=True, text=True)

    # 解析ffprobe输出结果
    output = json.loads(result.stdout)
    streams = output.get('streams')

    if streams:
        width = streams[0].get('width')
        height = streams[0].get('height')

        # 判断分辨率大小
        if width <= 640 and height <= 480:
            print("这是一个手机窄视频")
        else:
            print("这是一个电脑宽视频")
    else:
        print("无法解析视频信息")

# 调用函数并传入视频路径
judge_video_resolution('video.mp4')

最佳答案

查看完整内容

这个问题有意思,一开始觉得“人脸识别”,搞复杂了 判断款告别确实可以! 普遍情况下,如果一个视频的宽高比接近16:9,那么它更可能是为宽屏电脑或者电视屏幕优化的。 如果宽高比接近9:16,那么它则可能是为手机屏幕竖向播放优化的。 但对于横向视频,这个方法仍然适用。 在鱼油提供的代码中,您检查了分辨率的宽和高,但没有检查宽高比。 如果要根据宽高比来区分,可以增加一个计算宽高比并根据结果来判断视频 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-28 07:21:22 | 显示全部楼层
本帖最后由 不二如是 于 2024-5-28 08:57 编辑

这个问题有意思,一开始觉得“人脸识别”,搞复杂了

判断款告别确实可以!

普遍情况下,如果一个视频的宽高比接近16:9,那么它更可能是为宽屏电脑或者电视屏幕优化的。

如果宽高比接近9:16,那么它则可能是为手机屏幕竖向播放优化的。

但对于横向视频,这个方法仍然适用。

在鱼油提供的代码中,您检查了分辨率的宽和高,但没有检查宽高比。

如果要根据宽高比来区分,可以增加一个计算宽高比并根据结果来判断视频是宽频(适用于电脑)还是窄屏(适用于手机)的逻辑。
import subprocess
import json

def judge_video_resolution(video_path):
    # 执行ffprobe命令获取视频信息
    command = ['ffprobe', '-v', 'error', '-show_entries', 'stream=width,height', '-of', 'json', video_path]
    result = subprocess.run(command, capture_output=True, text=True)

    # 解析ffprobe输出结果
    output = json.loads(result.stdout)
    streams = output.get('streams')

    if streams:
        width = streams[0].get('width')
        height = streams[0].get('height')

        # 计算宽高比
        aspect_ratio = width / height
        
        # 判断宽高比
        if aspect_ratio >= 1.7:  # 宽屏通常16:9或者更宽
            print("这是一个电脑宽频视频")
        elif aspect_ratio <= 0.65:  # 竖屏通常为9:16
            print("这是一个手机竖屏视频")
        else:
            print("这是一个未知类型视频")
    else:
        print("无法解析视频信息")

# 调用函数并传入视频路径
judge_video_resolution('video.mp4')

这里的1.7是16:9宽高比的近似值。你可以根据具体情况调整这个比例。

对于9:16的竖屏视频,通常用于手机,比例阈值设置为0.65(即1/1.7的倒数)。

如果视频有不同于这两种典型格式的比例,可以根据需要调整判断逻辑或者添加更多的分类逻辑。

这种方法通常用于基本的视频类型区分,但对于一些特殊格式或自定义比例的视频,可能需要更详细的分析。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2024-5-28 09:49:17 | 显示全部楼层
不二如是 发表于 2024-5-28 08:54
这个问题有意思,一开始觉得“人脸识别”,搞复杂了

判断款告别确实可以!

完美,我怎么就没想到宽高比呢。  :(
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-8 08:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表