为你提供zsy0直播下载的攻略信息,本文目录一览:1、迅雷下载]黑眼圈 BD1024高清英语中字种子下载地址有么?感激不尽2、zsy0小奶猫叫什么名字了3
为你提供zsy0直播下载的攻略信息,本文目录一览:
1、迅雷下载]黑眼圈.BD1024高清英语中字种子下载地址有么?感激不尽2、zsy0小奶猫叫什么名字了3、盘点80年代喜剧片老电影,【在线观看】免费百度云资源4、android 直播怎么实现的5、喜羊羊与灰太狼之给快乐加油全集下载(地址)迅雷下载]黑眼圈.BD1024高清英语中字种子下载地址有么?感激不尽《黑眼圈》百度网盘高清资源免费在线观看:
链接:
提取码:uh2z
《黑眼圈》是由保罗·索特执导,乔纳森·斯卡奇及安德里亚·弗兰克及佩尔·詹姆斯主演的美国惊悚、恐怖电影。该片于2013年5月21日在美国上映。该片讲述的是一对睡眠不足的夫妻在鬼屋的故事。
zsy0小奶猫叫什么名字了zsy0小奶猫。zsy0小奶猫名字还是叫zsy0小奶猫,zsy0小奶猫直播是一款最精致有趣的手机娱乐直播交友软件,可以看到大量的直播内容,还可以认识附近的人,内容非常的丰富多彩,有强大的功能。
盘点80年代喜剧片老电影,【在线观看】免费百度云资源青年二子(陈佩斯 饰)待业在家,整天无所事事。哥们麻杆闻得居委会有意让他们几个待业青年合伙承包一家小客店,赶来和二子商量。二子觉得这个主意不错,于是和麻杆开始“招兵买马”,他们找来了失业在家的女生英子(张静林 饰)、父母都不在了的大虎和不堪忍受继父虐待的小豆(李楠 饰) 。在二子父母的资金和多方面支持下,这群年轻人终于领会了营业执照,将小客店包了下来。然而,开店后困难接踵而至。
android 直播怎么实现的android 的直播,主要使用的是camera采集的数据推流到服务器上,在客户端播放camera采集的数据。采用SurfaceView+ SurfaceTexture来显示camera数据, SurfaceTexture在接收图像流之后,可以进行二次处理,比如(加字体水印), 处理完毕后再送给另一个SurfaceView用于显示.
先说说,android端采集摄像头数据,这个网上有很多的资料,可以百度下。这里可以在回调函数OnPreviewFrame(byte[] data,Camera cma)中获取摄像头数据data.
关键是如何把data传输到服务器,要实现这个目标,我使用ffmpeg 来解决这个为题。在android 工程创建jni文件夹,使用jni调用。native函数如下:
// 在OnPreviewFrame中调用
public native void push(byte[] data);
// 可以在OnSurfcaeChanged()中调用. 在jni中初始化输出路径.
public native int initPush(String outputurl,int width,int height);
在jni 层的代码如下:
static void ffmpeg_init() {
avcodec_register_all();
12
#if CONFIG_AVDEVICE
avdevice_register_all();
#endif
avfilter_register_all();
av_register_all();
avformat_network_init();
1234
}
static int avinit(int width, int height){
/**编码开始*/
int ret;
if(codec==NULL){
yuv_width = width;
yuv_height = height;
y_length = width * height;
uv_length = width * height / 4;
LOGI("init startn");
codec = avcodec_find_encoder(AV_CODEC_ID_H264);
if (!codec) {
LOGI("Codec not foundn");
return -1;
}
c = avcodec_alloc_context3(codec);
if (!c) {
LOGI("Could not allocate video codec contextn");
return -1;
}
/* put sample parameters */
c-bit_rate = 400000;
/* resolution must be a multiple of two */
c-width = width;
c-height = height;
/* frames per second */
//c-time_base = (AVRational){1,5};
c-time_base.den = 25;
c-time_base.num = 1;
/* emit one intra frame every ten frames
* check frame pict_type before passing frame
* to encoder, if frame-pict_type is AV_PICTURE_TYPE_I
* then gop_size is ignored and the output of encoder
* will always be I frame irrespective to gop_size
*/
if (ofmt_ctx-oformat-flags AVFMT_GLOBALHEADER)
c-flags |= CODEC_FLAG_GLOBAL_HEADER;
c-gop_size = 10;
c-max_b_frames = 10;
c-pix_fmt = AV_PIX_FMT_YUV420P;
//av_opt_set(c-priv_data, "preset", "slow", 0);
av_opt_set(c-priv_data, "preset", "superfast", 0);
av_opt_set(c-priv_data, "tune", "zerolatency", 0);
/* open it */
if (avcodec_open2(c, codec, NULL) 0) {
LOGI("Could not open codecn");
return -1;
}
LOGI("init end 1n");
video_st = avformat_new_stream(ofmt_ctx, codec);
if (video_st == NULL) {
LOGI("video_st == NULLn");
return -1;
}
video_st-time_base.num = 1;
video_st-time_base.den = 25;
video_st-codec = c;
return 0;
}
/**编码结束*/
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
}
JNIEXPORT jint JNICALL Java_com_example_directvideo_MainActivity_initPush
(JNIEnv *env, jobject obj,jstring out ,jint width, jint height){
int ret ;
ffmpeg_init();
const char* str = //"rtmp://192.168.1.102:1935/myapp/test1";
//"/storage/emulated/0/zsy.mp4";
(*env)-GetStringUTFChars(env, out, 0);
LOGI("%s %d %d ", str,width,height);
//AVOutputFormat *ofmt = NULL;
//AVFormatContext *ofmt_ctx = NULL;
//Output
avformat_alloc_output_context2(ofmt_ctx, NULL, "flv", str); //RTMP
//avformat_alloc_output_context2(ofmt_ctx, NULL, "mpegts", output_str);//UDP
if (!ofmt_ctx) {
LOGI( "Could not create output contextn");
ret = AVERROR_UNKNOWN;
goto end;
}
ret = avinit(width, height);
ofmt = ofmt_ctx-oformat;
//Open output URL
if (!(ofmt-flags AVFMT_NOFILE)) {
ret = avio_open(ofmt_ctx-pb, str, AVIO_FLAG_WRITE);
if (ret 0) {
LOGI( "Could not open output URL "%s"", str);
goto end;
}
}
ret = avformat_write_header(ofmt_ctx, NULL);
if (ret 0) {
LOGE( "Error occurred when opening output URLn");
goto end;
}
(*env)-ReleaseStringUTFChars(env, out, str);
if (ret 0 ret != AVERROR_EOF) {
LOGI( "Error occurred.n");
return ret;
}
intited = 1;
return 0;
123456789101112131415161718192021222324252627282930313233343536373839404142434445
}
注意传输视频流时,必须使用h264编码器进行编码。初始化成功后,便可使用push()来推送每一帧的camera数据到服务器上。
本人在ubuntu系统中,利用ngnix + rtmp搭建了简易的流媒体服务器。
在pc机上,使用ffplay rtmp://192.168.1.102:1935/myapp/test1的命令来播放视屏.
幼教资源实时更新
链接:
提取码:2D72
简介:
青青草原迎来了新的一年,长大了的小灰灰整天捣乱,狼族有个成“狼”仪式:凡是年满七岁的狼必须抓到一只羊,否则会被开除狼籍。懒羊羊在苹果树下睡觉,被掉落的一颗苹果砸晕,他偶然发现自己能够随心所欲,最后发觉是南柯一梦。
更多关于“zsy0直播下载”的相关信息,请继续关注本站。
大家好,今天小编给大家分享金铲铲之战红蓝争霸赛什么阵容比较厉害 金铲铲之战红蓝争霸赛...
大家对精品卡一卡二新区仙踪林的羁绊是否都有了解了呢?要更好的来掌控棋局全局,那么对...
呼叫转移怎么设置,如何配置手机呼叫转移,接下来,小编为大家带来呼叫转移的设置方法是...
分居多久可以自动解除婚姻关系?很多人都有一个误区,认为分居达到一定的年限是可以自动...
大家好,小编推荐的新版天堂а√在线地址是一款非常值得在手机上免费看片追剧的视频...