我目前使用OpenVPN通过隧道连接服务器和客户端.我的目标是使用服务器使用HTML5视频标记从服务器上的客户端抓取并重新播放相机Feed.服务器具有公共IP,因此我们的想法是允许人们通过此服务器查看客户端的视频流.
我正在使用VLC,并使用图形方法,我能够在VLC上查看视频流.我使用的步骤如下:
http://10.8.0.6:8080/path/stream/
/stream/live
- > unchecked激活转码(否则它不起作用)[EDIT2:将端口更改为8181]该视频显示在VLC中,但是当我将以下行添加到服务器上的index.html文件时,它不起作用:
<video id="id" width="640" height="480" src="http://203.xxx.yyy.zzz:8080/stream/live" autoplay="autoplay">
</video>
Run Code Online (Sandbox Code Playgroud)
其中203.xxx.yyy.zzz是我服务器的公共IP地址.
视频没有显示; 只有黑屏.谁能帮我?
编辑:我不介意它不是一个图形解决方案; 命令行解决方案也很好.
EDIT2:我意识到输入和输出流都在同一个端口上,所以我将输出更改为端口8181.除此之外,我还尝试使用MJPEG来代替mux,以便我可以简单地显示它在使用<img>
标签的网页上(这比使用更受欢迎<video>
).我创建了一个名为"Video - MJPEG"的新配置文件.在"封装"选项卡下,我选择了MJPEG.在"视频编解码器"选项卡下,我选中了"视频",从下拉列表中选择了M-JPEG编解码器,将比特率保持为800kb/s,将帧速率提高到30 fps,并将1设置为分辨率比例.尽管使用此配置文件,但<img src="my.ip.address:8181/stream/live />
在我的index.html中使用时,流未显示.请帮忙!
因此,我尝试使用 Python 准备一条带有时间戳的消息,但在将日期时间转换为 protobuf 时间戳时遇到问题。
到目前为止,这是我尝试过的:
from google.protobuf.timestamp_pb2 import Timestamp
import datetime
now = datetime.datetime.now()
timestamp = Timestamp()
timestamp.FromDatetime(now)
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误AttributeError: 'Timestamp' object attribute 'seconds' is read-only
如何从日期时间创建时间戳?
我试图用matplotlib绘制一些可视化,并在我的一个函数中,我检查波是否是对数.这是我目前的工作版本:
import numpy as np
def is_logarithmic(waves):
def expfunc(x, a, b, c):
return a*np.exp(b*x) + c
wcopy = list(waves)
wcopy.sort()
# If the ratio of x-max : x-min < 10, don't use a logarithmic scale
# (at least in matplotlib)
if (wcopy[-1] / wcopy[0]) < 10:
return False
# Take a guess at whether it is logarithmic by seeing how well the x-scale
# fits an exponential curve
diffs = []
for ii in range(len(wcopy) - 1):
diffs.append(wcopy[ii + 1] …
Run Code Online (Sandbox Code Playgroud) 我在32位计算机上运行Ubuntu 12.04,我想使用freetds,unixodbc和python连接到我的MS SQL数据库,但是我收到一个错误:
>>> import pyodbc
>>> conn = pyodbc.connect('DSN=TS;UID=myusername;PWD=mypassword')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')
Run Code Online (Sandbox Code Playgroud)
这是我的/etc/freetds.conf
档案:
[TS]
host = 192.168.254.50
port = 1433
tds version = 7.0
client charset = UTF-8
Run Code Online (Sandbox Code Playgroud)
这是我的/etc/odbc.ini
档案:
--- /etc/odbc.ini ---
[TS]
Description = "test"
Driver = FreeTDS
Server = 192.168.254.50
Port = 1433
Database = db_name
Run Code Online (Sandbox Code Playgroud)
这是我的/etc/odbcinst.ini
档案: …
我正在尝试检查python中的字符串是否包含转义字符.最简单的方法是设置转义字符列表,然后检查列表中的任何元素是否在字符串中:
s = "A & B"
escaped_chars = ["&",
""",
"'",
">"]
for char in escaped_chars:
if char in s:
print "escape char '{0}' found in string '{1}'".format(char, s)
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
我有一个 Django 模板,我试图在其中将列表显示为 html 中的无序列表。目前我以一种非常凌乱的方式完成了它,使用|length
和|slice
:
{% if list_tasks %}
The following tasks will be removed from this group:
<ul>
{% for task in list_tasks|slice:":10" %}
<li>{{ task.name }}</li>
{% endfor %}
{% if list_tasks|length > 10 %}
<li>...and {{ list_tasks|length|add:"-10" }} other tasks</li>
{% endif %}
</ul>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
如果list_tasks
有 253 个元素,输出是这样的:
The following tasks will be removed from this group:
- T06/081
- T15/0395
- T15/0545
- T11/723
- T13/758
- T14/1532 …
Run Code Online (Sandbox Code Playgroud) 我有一个包含大量作业数据的表,我有一个下拉菜单和一个提交按钮,它充当过滤器,因此表只显示基于过滤器的作业:
<form>
<select id="user_id_dropdown" name="user_id">
<option disabled selected>Filter by Username</option>
<option value="all">All Usernames</option>
<option disabled>????????????</option>
{% for user in users %}
<option value={{ user.id }}>{{ user.username }}</option>
{% endfor %}
</select>
<input id="filter" class="btn btn-primary" type="submit" value="Filter" />
</form>
<table>
...
Run Code Online (Sandbox Code Playgroud)
我是如何使用按钮完成它的,用户名的user_id作为查询字符串传递,我的视图处理它.选择用户名(例如,其user_id为4)并单击提交按钮后,网址为:
http://...jobs?user_id=4
Run Code Online (Sandbox Code Playgroud)
然后我在下面有一个表格,其中显示的所有作业现在只有那些创建的作业user_id
4
.
问题是,现在我只想取消提交按钮,只需在下拉选项中提交表单.
我试图给表单一个名称,并在选择发生变化时提交:
<form name='filter' method=POST>
<select id="user_id_dropdown" name="user_id" onChange="filter.submit();">
...
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.它看起来像页面重新加载(类似于提交按钮),但表数据不会更改.我在这里错过了什么?
所以我有一个键列表:
keys = ['id','name', 'date', 'size', 'actions']
Run Code Online (Sandbox Code Playgroud)
我还有一个vales列表列表:
values=
[
['1','John','23-04-2015','0','action1'],
['2','Jane','23-04-2015','1','action2']
]
Run Code Online (Sandbox Code Playgroud)
如何使用与值匹配的键构建字典?
输出应该是:
{
'id':['1','2'],
'name':['John','Jane'],
'date':['23-04-2015','23-04-2015'],
'size':['0','1'],
'actions':['action1','action2']
}
Run Code Online (Sandbox Code Playgroud)
编辑:我试图使用zip()和dict(),但这只有在值列表有1个列表时才有效,即 values = [['1','John','23-04-2015','0','action1']]
for list in values:
dic = dict(zip(keys,list))
Run Code Online (Sandbox Code Playgroud)
我还想过用键来初始化一个dic,然后自己建立一个值列表,但我觉得必须有一个更简单的方法来做.
dic = dict.fromkeys(keys)
for list in values:
ids = list[0]
names = list[1]
dates = list[2]
sizes = list[3]
actions = list[4]
Run Code Online (Sandbox Code Playgroud)
然后最后
dic['id'] = ids
dic['name'] = names
dic['date'] = dates
dic['size'] = sizes
dic['action'] = actions
Run Code Online (Sandbox Code Playgroud)
这看起来真的很傻,我想知道更好的做法是什么.
所以我在这里看到了一些类似的问题,但不是我想要的。
我试图在同一视图中为每个方法设置不同的权限。我目前拥有的:
class MyViewSet(viewsets.ViewSet):
# User must be authenticated
permission_classes = (IsAuthenticated,)
def list(self, request):
...
# User must be admin
def create(self, request):
...
def retrieve(self, request):
...
Run Code Online (Sandbox Code Playgroud)
基本上,我试图确保只有管理员才能调用该create
方法。我看过创建自定义权限,但这适用于整个视图集,这不是我想要的。
我以前使用过 MySQL,并且有一个使用REGEXP
. 我试图找到site_id
以某些字符开头的 s,并使用以下内容:
WHERE site_id REGEXP '^(AB|BC|AO|BO|CA|PAF|Z)'
Run Code Online (Sandbox Code Playgroud)
基本上试图找到行 where site_id LIKE 'AB%' OR 'BC%'...
,但因为我有很多字符串要匹配,所以我想以不太冗长的方式进行操作。
不幸的是 SQL Server 似乎不喜欢这种语法,我收到一个错误:
在需要条件的上下文中指定的非布尔类型表达式,靠近“REGEXP”。DB-Lib 错误消息 4145,严重性 15:常规 SQL Server 错误:检查来自 SQL Server 的消息
有没有一种巧妙的方法可以在不使用大量的情况下做到这一点LIKE 'XX%' OR ...
?
我正在尝试使用可调用对象来创建带有选项字段的模型,以便当选项列表更改时,Django不会创建迁移,如本问题所述。
class Quote(models.Model):
severity = models.IntegerField(choices=get_severity_choices)
...
class get_severity_choices(object):
def __iter__(self):
for item in SEVERITY_CHOICES:
yield item
Run Code Online (Sandbox Code Playgroud)
哪里
SEVERITY_CHOICES = (
(1, 'Low'),
(2, 'Medium'),
(3, 'High'),
)
Run Code Online (Sandbox Code Playgroud)
但是,我收到一条错误消息:
quoting.Quote.severity: (fields.E004) 'choices' must be an iterable (e.g., a list or tuple).
Run Code Online (Sandbox Code Playgroud) 我试图获取一个JavaScript字符串数组,并基于其中的所有元素返回一个布尔值。&&
非空字符串之间的逻辑应返回true。我发现了使用的简单方法来在两个字符串之间返回布尔值!!("String1" && "String2")
。
但是,如果我将这两个字符串放在类似的数组中var myArr = ["String1","String2"]
,我将如何去做呢?
python ×7
django ×4
html ×2
list ×2
string ×2
arrays ×1
boolean ×1
dictionary ×1
forms ×1
freetds ×1
html5 ×1
javascript ×1
matplotlib ×1
numpy ×1
pymssql ×1
scipy ×1
sql-server ×1
ubuntu-12.04 ×1
unixodbc ×1
video ×1
vlc ×1