我正在使用opencv-python==4.5.1.48和python3.9docker。我想以 h264 格式保存视频。这是我保存视频的功能:
import cv2
def save_video(frames):
fps = 30
video_path = '/home/save_test.mp4'
fourcc = cv2.VideoWriter_fourcc(*'h264')
video_writer = cv2.VideoWriter(video_path, fourcc, fps, (112, 112))
for frame in frames:
video_writer.write(frame)
video_writer.release()
Run Code Online (Sandbox Code Playgroud)
当我使用 .mp4 格式保存视频时,出现以下错误:
OpenCV:FFMPEG:编解码器 ID 27 和格式“mp4 / MP4(MPEG-4 第 14 部分)”不支持标记 0x34363268/'h264' OpenCV:FFMPEG:回退使用标记 0x31637661/'avc1' 找不到编解码器的编码器id 27:未找到编码器
我搜索并阅读了一些解决方案,但没有一个解决我的问题。
更新:
我也安装了这篇文章libx264-dev中推荐的但没有用。
我有一个像这样的数据框:
df = pd.DataFrame({'A': ['1', '2', '3'], 'B': ['aa', 'b', 'c']})
A B
0 1 aa
1 2 b
2 3 c
Run Code Online (Sandbox Code Playgroud)
我想将每一行列转换B为一个列表。例如,我想要的输出是这样的:
df_new
A B
0 1 [aa]
1 2 [b]
2 3 [c]
Run Code Online (Sandbox Code Playgroud) 我从 MySQL 数据库获取数据。获取的数据有一列,其中包含嵌套列表和字典。这个 json 与我的数据库中存储的数据类似:
my_dict = {'id': [1, 2, 3],
'b': [{'100': [{'p': 10, 'max': 20, 'min': 15},
{'p': 20, 'max': 30, 'min': 20}]
},
{'101': [{'p': 100, 'max': 200, 'min': 150}],
'102': [{'p': 105, 'max': 205, 'min': 155},
{'p': 102, 'max': 202, 'min': 152}]},
{'103': [{'p': 210, 'max': 2110, 'min': 1115}]}]}
Run Code Online (Sandbox Code Playgroud)
在代码中,我只有df:
df = pd.DataFrame(my_dict)
df
id b
0 1 {'100': [{'p': 10, 'max': 20, 'min': 15}, {'p': 20, 'max': 30, 'min': 20}]}
1 2 {'101': …Run Code Online (Sandbox Code Playgroud)