FFMPEG PACKET 保存到文件后 只有前几帧播放 后面卡住 怎么回事
时间: 2023-12-06 14:42:31 浏览: 39
可能是因为你只保存了部分的 `packet`,导致后面的帧无法正常播放。你可以尝试将整个视频的所有 `packet` 都保存下来,然后再进行播放。
另外,你也可以检查一下你的播放器是否支持你所使用的视频编码格式,如果不支持可能会导致播放卡住。你可以尝试使用其他播放器或者将视频重新编码成其他格式再进行播放。
相关问题
ffmpeg avcodec_send_packet() 卡住
`avcodec_send_packet()` 可以用于向编码器发送数据包,但是如果该函数被卡住了,通常是由于以下原因所致:
1. 传递给 `avcodec_send_packet()` 的 `AVPacket` 结构体中的数据不完整或不正确。你可以尝试检查一下传递给该函数的 `AVPacket`,确保它包含了完整且正确的媒体数据。
2. 编码器的输出缓冲区已满,无法接收更多的数据。你可以通过调用 `avcodec_receive_packet()` 来获取编码器的输出数据,并在缓冲区有足够空间时再次调用 `avcodec_send_packet()` 。
3. 编码器已经被关闭或出现了其他错误。在这种情况下,你需要检查编码器的状态并确保它正在正常运行。
你可以根据具体情况进行调试,以确定问题的原因,并采取相应的解决方案。
opencv 获取ffmpeg 的log信息并保存到文件
要将FFmpeg的日志信息保存到文件中,可以使用FFmpeg的AVLog类。以下是一个示例代码:
```python
import cv2
import ffmpeg
# 定义FFmpeg的日志回调函数
def log_callback(level, message):
with open("ffmpeg.log", "a") as f:
f.write("[FFmpeg {}] {}\n".format(level, message.decode("utf-8")))
# 设置FFmpeg的日志回调函数
ffmpeg.av_log_set_callback(log_callback)
# 打开视频文件
cap = cv2.VideoCapture("video.mp4")
# 检查是否成功打开
if not cap.isOpened():
print("Error opening video file")
exit()
# 读取并显示视频帧
while True:
ret, frame = cap.read()
if not ret:
break
cv2.imshow("Frame", frame)
cv2.waitKey(10)
# 释放资源
cap.release()
cv2.destroyAllWindows()
```
在此示例中,我们首先定义了一个FFmpeg的日志回调函数,然后设置了该回调函数。在回调函数中,我们将日志信息追加到文件中。接下来,我们打开视频文件并读取帧,每次读取一帧并在窗口中显示。在此过程中,如果FFmpeg或OpenCV发生错误,则会将错误信息保存到文件中。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](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)
![](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)