我想要android.media.MediaRecorder.将音频不记录到文件中,而是记录到相同的变量中,例如char []或byte []或其他一些datta缓冲结构.我想通过Wi-Fi将它发送到远程服务器,android.media.MediaRecorder可以提供这个功能吗?
我正在开发一个Android应用程序.我有一些活动.我必须有一个可以从所有活动中获得的对象.任何想法如何组织它?
我需要一些有关decodein rtsp视频流的帮助.我从AXIS IP-camera那里得到它.我使用ffmpeg库.有必要单独创建AVCodecContext,而不是AVFormatContext-> streams [...] - > codec;
所以我创建AVCodec,AVCOdecContext并尝试初始化它们.
AVCodec *codec=avcodec_find_decoder(codec_id);
if(!codec)
{
qDebug()<<"FFMPEG failed to create codec"<<codec_id;
return false; //-->
}
AVCodecContext *context=avcodec_alloc_context3(codec);
if(!context)
{
qDebug()<<"FFMPEG failed to allocate codec context";
return false; //-->
}
avcodec_open2(context, codec, NULL);
Run Code Online (Sandbox Code Playgroud)
然后在应用程序的主循环中,我获取帧数据并尝试解码:
_preallocatedFrame = avcodec_alloc_frame();
avcodec_decode_video2(_context, _preallocatedFrame, &got_picture, &_packet);
Run Code Online (Sandbox Code Playgroud)
在这里,我在控制台中收到了很多消息:
[h264 @ 1f177720] decode_slice_header error
[h264 @ 1f177720] no frame!
[h264 @ 1f177720] non-existing PPS 0 referenced
[h264 @ 1f177720] decode_slice_header error
[h264 @ 1f177720] no frame!
[h264 @ 1f177720] non-existing PPS …Run Code Online (Sandbox Code Playgroud) 我有个问题:
我在Android应用程序中使用MediaRecorder记录来自摄像头的数据.我把它保存在socket中,而不是保存在文件中.该数据的长度可能不同.在套接字连接的另一端,我将其保存在文件中.连接可能会在任何意外时刻中断.因此,在android套接字断开后,我尝试使用ffmpeg解码接收的数据.但据我所知,它无法在此文件中找到moov原子.我已经阅读了一些关于moov的信息,所以我认为MediaRecorder将moov atom放在文件末尾.但如果录音中断,则跳过写moov原子.
我还读过,对于长度未知的数据(渐进加载,流式传输),可以在文件的开头写入moov atom.
如何将自己的moov数据写入流?我可以使用MediaRecorder吗?或者有必要手工制作吗?如何生成有效的moov数据?如果有人已经解决了这个问题,请给我建议..
我有通过 ssh 将一些文件复制到其他服务器的脚本。我正在使用 tar 将文件压缩到 farchive 并从其他计算机上的 stdout 解压缩。
set timeout -1
# user info
set port [lindex $argv 0]
set login [lindex $argv 1]
set password [lindex $argv 3]
set host [lindex $argv 2]
#tar info
set sdir [lindex $argv 4]
set ddir [lindex $argv 5]
spawn tar cf - $sdir | ssh -p $port $login@$host tar xf - -C $ddir
expect "*?(yes/no)" {
send "yes\r"
}
expect "*?assword" {
send "$password\r"
}
expect "#" {
send "ls $ddir …Run Code Online (Sandbox Code Playgroud) 我有一个 IP 摄像机,它可以通过 RTSP 为我提供媒体数据。
我开发了一个用于获取媒体数据的应用程序。
我使用 C++ 和 Qt3。
我创建套接字。在端口 = 554 上将其连接到我的设备 IP。
我先查询
设置 rtsp://192.168.4.160/ufirststream RTSP/1.0\r\n CSeq: 1\r\n 传输:RTP/AVP;client_port=554\r\n\r\n
并得到答案:
RTSP/1.0 200 正常 CSeq:1 日期:2012 年 3 月 24 日星期六 17:24:59 GMT 传输:RTP/AVP;单播;目的地=192.168.4.186;源=192.168.4.160;客户端端口=0-1;服务器端口=2000-2001 会话:413F4DDB
我将其解析为 gettin 会话值,然后执行下一个查询:
播放 rtsp://192.168.4.160/ufirststream RTSP/1.0 CSeq:1 会话:413F4DDB
服务器说:
RTSP/1.0 200 正常 CSeq:1 日期:2012 年 3 月 24 日星期六 17:25:02 GMT 会话:413F4DDB RTP-Info: url=rtsp://192.168.4.160/ufirststream/track1;seq=6716;rtptime=406936711
以及如何获取媒体数据???我认为 PLAY 方法让服务器给我一个流,但它只给我一个 rtsp 和其他信息的 url ......
我需要来自相机的二进制流,你能为我的下一步提供建议吗??
有人早点解决了这个问题吗?我需要一种简单快速的方法来将QImage :: bits()缓冲区从RGB32转换为YUV420P像素格式。你能帮助我吗?