我尝试使用OpenCV读取实时视频流,如下所示,

cv::VideoCapture capture(video_url);
它可以从实时视频流中读取并且效果很好。但是,当向其发送伪造的video_url(例如txt文件的url)时,
video_url = "http://127.0.0.10:8090/result.txt"
它也可以从该伪造的URL解码数据。但是当video_url为假时,我希望它返回错误信息。
如何辨别网址是真正的实时视频流还是txt网络文件?

最佳答案

python

您可以使用URLValidator()来区分假网址。

from django.core.exceptions import ValidationError
from django.core.validators import URLValidator

validate = URLValidator()
is_valid = False

url = "https://www.youtube.com/watch?v=vNSxargsAWk"

try:
    validate(url)
    is_valid = True
except ValidationError as exception:
    print("url is not valid")
c++
  • 使用正则表达式检查URL。

  • #include <regex>
    using namespace std;
    
    int main()
    {
        regex url_validator("/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(:[0-9]+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/");
    
        if(regex_match(input, url_validator))
            cout<<"Input is an integer"<<endl;
        else
            cout<<"Invalid input : Not an integer"<<endl;
    }
    
    

    关于opencv - cv::VideoCapture读取实时视频流,但不能区分假网址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63667302/

    10-13 03:00