如何在python中执行ffmpeg命令拉流并获取长宽信息
时间: 2024-05-11 15:14:04 浏览: 113
可以使用Python的`subprocess`模块来执行ffmpeg命令,并使用正则表达式来提取输出中的长宽信息。
下面是一个示例代码:
```python
import subprocess
import re
# 执行ffmpeg命令
cmd = 'ffmpeg -i rtsp://example.com/stream -f null -'
result = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# 使用正则表达式提取长宽信息
pattern = r'Stream.*Video.* ([0-9]+)x([0-9]+)'
match = re.search(pattern, result.stderr.decode())
if match:
width = int(match.group(1))
height = int(match.group(2))
print(f"Width: {width}, Height: {height}")
else:
print("Failed to get video dimensions")
```
这个示例代码执行了一个ffmpeg命令,从rtsp流中拉取视频,并将视频数据写入一个null文件。然后,它从ffmpeg输出的错误流中使用正则表达式提取了视频的长宽信息,并将其打印出来。
请注意,这个示例代码使用了`subprocess.run()`函数来执行ffmpeg命令,并使用了`stdout=subprocess.PIPE`和`stderr=subprocess.PIPE`参数来捕获ffmpeg的标准输出和标准错误输出。然后,它使用了`result.stderr.decode()`将标准错误输出转换为字符串,并将其传递给正则表达式。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![cpp](https://img-home.csdnimg.cn/images/20250102104920.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![7z](https://img-home.csdnimg.cn/images/20241231044736.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![java](https://img-home.csdnimg.cn/images/20250102104920.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)