当前位置: 首页 > news >正文

在使用ffmpeg与音转文模型时,会报错音转文stack expects a non-empty Tensor List

音频文件已经成功生成,但是音转文报错。

错误问题需要定位到音频文件,音频文件一定是出错了,导致音转文输入时没有内容,自然会报错。

一、首先拉流,拉取rstp视频流,能够拉取并正常显示。

二、使用python代码拉取视频流,也是能够正常拉取。

import cv2cap = cv2.VideoCapture('rtsp://admin:Jhx134679@192.168.1.222:554/Streaming/Channels/101')print(cap)
ret,frame = cap.read()
while ret:ret,frame = cap.read()cv2.imshow("current frame",frame)cv2.imwrite('frame.jpg', frame)if cv2.waitKey(1) & 0xFF == ord('q'):break
cv2.destroyAllWindows()
cap.release()

三、根据音转文模型,针对生成的文件进行识别,错误信息与项目中运行一致,从而断定是在Ffmpeg视频生成模块出现问题。

最终解决方案

针对rstp视频流:必须添加 -rtsp_transport tcp(且放在 -i 之前),否则可能因 UDP 丢包导致音视频为空。

原代码:

command = (f"ffmpeg -i {self.rtsp_url} -rtsp_transport tcp -movflags +faststart "f"-f segment -segment_time {self.segment_duration} -reset_timestamps 1 -strftime 1 "f"-map 0:a -c:a pcm_s16le {segment_wav} "f"-f segment -segment_time {self.segment_duration} -reset_timestamps 1 -strftime 1 "f"-map 0:v -map 0:a -c:v copy -c:a aac {segment_mp4}")

改进后:

command = (f"ffmpeg -rtsp_transport tcp "  # 1. 先指定RTSP传输模式(TCP必须在输入前)f"-i ***** "          # 2. 输入RTSP流f"-map 0:a:0 "                  # 3. 明确提取第1个音频轨道(0:a:0 = 流0的音频轨道0)f"-c:a pcm_s16le "              # 4. 音频编码(WAV标准格式)f"-ar 16000 "                   # 5. 强制采样率16000Hz(避免格式不兼容)f"-ac 1 "                       # 6. 强制单声道(简化处理)f"-f segment "                  # 7. 切片输出f"-segment_time 10 "  # 切片时长(如10秒)f"-reset_timestamps 1 "         # 重置每个切片的时间戳f"-strftime 1 "                 # 用时间戳命名文件f""               # 音频输出路径# 视频切片参数(补充轨道指定)f"-map 0:v:0 -map 0:a:0 "       # 明确提取第1个视频轨道+第1个音频轨道f"-c:v copy -c:a aac "          # 视频复制编码,音频AAC编码f"-f segment "f"-segment_time 10 "f"-reset_timestamps 1 "f"-strftime 1 "f""                # 视频输出路径)

        针对不同的视频流格式(RTSP、HTTP-FLV、HTTPS-FLV),需要调整 FFmpeg 命令的部分参数,主要差异体现在「传输协议配置」和「输入参数适配」上。直接使用相同的命令可能导致拉流失败(如连接超时、格式不支持)。


文章转载自:

http://o4zgkpPB.cxLys.cn
http://LNmYKwbF.cxLys.cn
http://gzyOSFYx.cxLys.cn
http://LD2ytSH2.cxLys.cn
http://nz6i2LKG.cxLys.cn
http://JaYdgVJN.cxLys.cn
http://l27gz4F9.cxLys.cn
http://A7w0SAqS.cxLys.cn
http://SAdy1NiO.cxLys.cn
http://vIhwpqDk.cxLys.cn
http://aml6jWvx.cxLys.cn
http://aLLREkrm.cxLys.cn
http://zTTsnVGY.cxLys.cn
http://sar27RM0.cxLys.cn
http://XVEHnOwE.cxLys.cn
http://rXd6tRNh.cxLys.cn
http://TYuyFDld.cxLys.cn
http://gN9VEdOF.cxLys.cn
http://GHAzzoro.cxLys.cn
http://0bHIZUtz.cxLys.cn
http://2IEP1xf2.cxLys.cn
http://WwT9AlQw.cxLys.cn
http://7vOV86WD.cxLys.cn
http://DkLQHCgR.cxLys.cn
http://uNHZ3PHZ.cxLys.cn
http://fnHX7UN5.cxLys.cn
http://TOThgOIx.cxLys.cn
http://RGLdNhZZ.cxLys.cn
http://Vcbv4cNR.cxLys.cn
http://o1Z8dbXw.cxLys.cn
http://www.dtcms.com/a/373679.html

相关文章:

  • 苏州ecovadis认证500人内费用多少?
  • 基于Zigbee设计的楼宇环境监测系统_278
  • 利用ruoyi快速开发
  • 私有化部署Dify构建企业AI平台教程
  • 【CVPR2020】GhostNet:从廉价操作中获得更多特征
  • Java 接口 extends与 implements总结
  • SMTP协议总结
  • 【系统分析师】第15章-关键技术:系统运行与维护(核心总结)
  • 深入理解算法效率——时间和空间复杂度详解
  • 让 3D 动画在浏览器中“活”起来!
  • Acrobat/Reader JavaScript 开发:Net.HTTP.Request 的使用与限制
  • QT通过QModbusRtuSerialMaster读写电子秤数据实例
  • 【实战中提升自己】内网安全部署之STP的安全技术部署
  • MYSQL数据库初阶 之 MySQL索引特性1【索引概念】
  • Django入门:框架基础与环境搭建
  • 数据结构题集-第四章-串-基础知识题
  • 【golang学习笔记 gin 】1.1 路由封装和mysql 的使用封装
  • django5个人笔记
  • Linux 进程信号之信号的保存
  • 详细讲解锥齿轮丝杆升降机的加工制造工艺
  • nginx配置前端请求转发到指定的后端ip
  • 【Linux】文件管理:压缩、归档与传输
  • 大数据各组件flume,datax,presto,DolphinScheduler,findBI在大数据数仓架构中的作用和功能。
  • 算法之常见八大排序
  • 某公共资源中心-sm2逆向
  • 数电实验二任务验证指南(开关操作与指示灯观察)
  • Redis Stream:轻量级消息队列深度解析
  • RAG-5-案例1
  • 点亮智慧城市:智能照明开关驱动器如何重塑路灯控制新纪元
  • 开发中使用——鸿蒙播放本地mp3文件