Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

新版本关于分辨率的获取问题 #608

Open
hllkk opened this issue Dec 1, 2024 · 4 comments
Open

新版本关于分辨率的获取问题 #608

hllkk opened this issue Dec 1, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@hllkk
Copy link

hllkk commented Dec 1, 2024

新版本中无法获取到视频的分辨率信息,我尝试使用解释器直接运行这段代码,但会的info信息中没有视频的长度和宽度的信息,虽然有resolution字段,但是都是返回的NULL,因此我在这提议,使用ffmpeg-python来实现这个功能,实现方式也很简单
大致我写的代码如下:
async def get_resolution_ffmpeg(url):
"""
获取直播流的视频分辨率(宽度和高度)
"""
try:
# 将参数封装成字典
probe_args = {
'v': 'error',
'select_streams': 'v:0',
'show_entries': 'stream=width,height'
}
# 使用 asyncio.wait_for 控制超时
probe = await asyncio.wait_for(
asyncio.to_thread(ffmpeg.probe, url, **probe_args),
timeout=settings.TIMEOUT # 设置超时为 10 秒
)
# 解析输出
width = probe['streams'][0]['width']
height = probe['streams'][0]['height']

    if width and height:
        return f"{width}x{height}"  # 返回字符串格式的分辨率
    return None  # 如果未能获取分辨率,则返回 None
except asyncio.TimeoutError:
    print(f"TimeoutError: Timeout occurred while probing {url}")
    return None
except ffmpeg.Error as e:
    print(f"Error occurred while probing {url}: {e}")
    return None
@Guovin
Copy link
Owner

Guovin commented Dec 2, 2024

旧版是有ffmpeg提取分辨率数据的,但由于效率、性能消耗、构建等原因暂时停用了,yt-dlp也有结合ffmpeg的配置,具体我会去研究下

@Guovin Guovin added the enhancement New feature or request label Dec 2, 2024
@Mrmanbanpai
Copy link

我想在软路由上跑此项目 配合投影仪使用 有内网页面版的组播播放器吗

@Guovin
Copy link
Owner

Guovin commented Dec 2, 2024

我想在软路由上跑此项目 配合投影仪使用 有内网页面版的组播播放器吗

目前暂没有网页版的播放器,但在计划中,项目已经创建https://github.com/Guovin/iptv-web

@hllkk
Copy link
Author

hllkk commented Dec 17, 2024

大佬,有个需求,不知道是否可以实现?
首先我不知道是不是只有我有这方面需求,其次可能有没有这个也无伤大雅
需求如下:
1.增加本地源功能,就是自己有一部分很稳定的直播源,当然这些直播源可能不能放到白名单里面,因为这样就参与不了测速了。虽然这个说辞跟稳定有逻辑冲突。
2.增加未匹配的直播源收录功能,就好比我有一个订阅链接,里面有我想要的资源,但是可能就是因为重命名啊什么的,结果中不存在相关的资源,但我又不知道我应该从哪里下手,如果说记录了未匹配的结果文件,我就可以根据未收集到的资源信息,修改配置中的重命名字典了。
感谢大佬,仅供大佬参考

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants