问题描述:
ffmpeg通过命令行方法抓取海康摄像头rtsp的音频流数据有概率失败
使用场景:
cotex-A7 嵌入式平台
rtsp是音视频混流 h.264+ aac
sprintf(cmd,"ffmpeg -rtsp_transport tcp -buffer_size 102400 -i rtsp://%s:%s@%s:554 -t 00:00:30 -acodec copy -vn %s",\
user,pwd,addr,time,filename);
printf("cmd %s\n",cmd);
问题现象
1、有概率出现录制1s左右后退出
2、有概率出现录制30s,结果只有20多秒的音频文件
3、 没有任何报错信息
尝试方法
增大buffer_size 无效果
1,-buffer_size 102400,你这设置的缓冲区才100K,对音视频数据来说,太小了。你看下海康摄像机视频参数码流,设置的是多少,如下图设置的是2M
2,将缓冲区设置成8M试试,即8x1024x1024 = 8,388,608
sprintf(cmd,"ffmpeg -rtsp_transport tcp -buffer_size 8388608 -i rtsp://%s:%s@%s:554 -t 00:00:30 -acodec copy -vn %s",\
user,pwd,addr,time,filename);
3,也可以将视频一块录制下来,看看视频是否连续
4,确保cotex-A7 嵌入式平台与摄像机之间网络连接通畅,无丢包
如有帮助,请采纳一下;如有问题,再留言沟通。谢谢!
ffmpeg貌似可以调节频率,感觉像是频率有关系
好的,我周一尝试后回复,多谢了
我认为可以在分析SDP时 ,核实真正的流,才增加 nb_stream 。比如有codecID
音视频数据的传输大多都是用udp协议,用tcp传输效率不高,可以将tcp改为udp试试