我一直在尝试传递一个在shell中工作的命令,它只能在"concat:file1|file2"ffmpeg参数的命令行中使用文字双引号.
但我不能用python做这个工作subprocess.Popen().任何人都知道如何将引号传递给subprocess.Popen?
这是代码:
command = "ffmpeg -i "concat:1.ts|2.ts" -vcodec copy -acodec copy temp.mp4"
output,error = subprocess.Popen(command, universal_newlines=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE).communicate()
Run Code Online (Sandbox Code Playgroud)
当我这样做时,除了在concat segement周围的引号之外,ffmpeg不会采取任何其他方式.有没有办法成功将此行传递给subprocess.Popen命令?
我有一个小的测试代码块试图处理一个带有球的简单照片:
#!/usr/local/bin/python
import cv2
import numpy as np
img = cv2.imread("b.jpg")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
circles = cv2.HoughCircles(gray,cv2.CV_HOUGH_GRADIENT)
Run Code Online (Sandbox Code Playgroud)
当我尝试运行时,我得到:
AttributeError:'module'对象没有属性'HOUGH_GRADIENT'
我已经安装并重新安装了两天,试图弄清楚什么是错的.任何帮助或指针将不胜感激!
我一直在研究一个关于如何在图像中找到简单篮球的宠物项目.在过去的几周里,我尝试了一些使用hough.circles和转换等的排列,但我似乎无法将代码示例和我自己的修补程序隔离开来.
这是一张示例照片:
这是一个简单版本的圆形查找代码之后的结果我一直在修补:

任何人都知道我哪里出错了,我怎么能把它弄好?
这是我摆弄的代码:
import cv2
import cv2.cv as cv # here
import numpy as np
def draw_circles(storage, output):
circles = np.asarray(storage)
for circle in circles:
Radius, x, y = int(circle[0][3]), int(circle[0][0]), int(circle[0][4])
cv.Circle(output, (x, y), 1, cv.CV_RGB(0, 255, 0), -1, 8, 0)
cv.Circle(output, (x, y), Radius, cv.CV_RGB(255, 0, 0), 3, 8, 0)
orig = cv.LoadImage('basket.jpg')
processed = cv.LoadImage('basket.jpg',cv.CV_LOAD_IMAGE_GRAYSCALE)
storage = cv.CreateMat(orig.width, 1, cv.CV_32FC3)
#use canny, as HoughCircles seems to prefer ring like circles to filled ones.
cv.Canny(processed, processed, …Run Code Online (Sandbox Code Playgroud) 我正在使用Youtube V3 Api和这里的代码片段来从我的YouTube频道中提取前十个视频.(同样的查询在google API资源管理器@ https://developers.google.com/apis-explorer/中完美运行)
url_start = "https://www.googleapis.com/youtube/v3/videos?" + \
"order=viewCount&part=snippet&forMine=true" + \
"&type=video&maxResults=10&key=MY_API_KEY"
data = requests.get(url_start).json()
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
{u'error': {u'code': 400,
u'message': u'No filter selected.',
u'errors':[{u'locationType': u'parameter',
u'domain': u'youtube.parameter',
u'message': u'No filter selected.',
u'reason': u'missingRequiredParameter',
u'location': u''}]}}
Run Code Online (Sandbox Code Playgroud)
我知道密钥是有效的,因为如果我可以在没有forMine的情况下执行相同的查询
https://www.googleapis.com/youtube/v3/search?part=snippet&key=MY_API_KEY
Run Code Online (Sandbox Code Playgroud)
我从youtube获得了整体热门视频.有没有更好的方法来做到这一点或解决方法?
我试图使用FFMPEG将已经录制的视频文件流式传输到抽搐服务器,但到目前为止我只获得音频,而没有视频。我尝试了几种设置,以及不同的文件(avi等),但是我仍然只获得音频。这是我的FFMPEG设置:
ffmpeg -re -i test.mp4 -vcodec libx264 -preset fast -crf 30 -acodec aac -ab 128k -ar 44100 -strict experimental -f flv rtmp://live-dfw.twitch.tv/app/"TWITCHKEY"
Run Code Online (Sandbox Code Playgroud)
有人钉过这个吗?我在Ubuntu下使用ffmpeg 0.8.17-6:0.8.17-1。
我目前无法在我正在使用的盒子上访问openCV - 这将使它在公园里散步并让我免于拉扯我的头发 - 但下面是我有的图像我已经达到了阈值和我的我想做的是找到一种方法来获得围绕像素分组的4个列表元组.
原始阈值图像
目前我使用此代码:
box = image.getbbox()
draw = ImageDraw.Draw(area) # Create a draw object
draw.rectangle(area.getbbox(), outline="red")
Run Code Online (Sandbox Code Playgroud)
结果图像
但我真正想做的是在顶部白色区域或中央灰色区域周围画一个盒子.我想避免裁剪,因为我想把它写成一个自动化函数,我永远不知道阈值将在何处.这是一个示例情况图像我想实现我在烟花中做的:
新的梦想结果
希望这很清楚!两天没有睡觉!任何指针或指导都是超级赞赏!
我想做的是从音频或视频文件中获取元数据并将其保存到数据库记录中,到目前为止,唯一的方法似乎是使用子进程将 AVCONV 保存到文件中。打开调用然后读取该文件,是有没有库可以做到这一点以节省一些步骤?我找不到使用 Pydub 或 PySox 来完成此操作的方法。这是我使用的简单粗暴的初学者代码,它确实有效,并将比特率、持续时间等信息放入变量audio_info中,并将元数据放入元数据中。OGG 输出的工作方式与我测试的其他格式不同(这是大量的视频和音频!)。
try:
p = subprocess.Popen(["avconv" , "-i" , music_file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
retcode = p.wait()
except IOError,e:
pass
extension = uploaded_music_file[-3:]
if "ogg" not in [err , extension]:
if "Metadata:" in err:
list = err.split("Metadata:")
holder = list[1].split("Duration:")
metadata = holder[0]
audio_info = holder[1].replace("At least one output file must be specified","")
print metadata
print audio_info
else:
list = err.split("Duration:")
audio_info = list[1].replace("At least one output file must be specified","")
print …Run Code Online (Sandbox Code Playgroud) 我正在尝试在给定日期之前从 twilio 消息列表中检索 SMS 消息。当我要求它提供带有等号的给定日期时,它会起作用(它会返回 2019 年 2 月 2 日的所有短信:
timestamp = datetime.datetime(2019, 2, 15, 0, 0,0)
client = Client(account_sid, auth_token)
messages = client.messages.list(
date_sent=timestamp
)
Run Code Online (Sandbox Code Playgroud)
但如果我尝试使用:
date_sent<=timestamp
Run Code Online (Sandbox Code Playgroud)
或者
date_sent>=timestamp
Run Code Online (Sandbox Code Playgroud)
我收到一个错误。
global name 'date_sent' is not defined
Run Code Online (Sandbox Code Playgroud)
该文档似乎建议您可以使用 >= 或 <= 运算符,但实际上这种方式不起作用。有什么想法如何让它吐出正确的数据吗?
python ×7
opencv ×2
avconv ×1
detection ×1
ffmpeg ×1
image ×1
numpy ×1
pydub ×1
rtmp ×1
subprocess ×1
twilio ×1
twilio-api ×1
twitch ×1
video ×1
youtube-api ×1