我正在开发一个业余爱好项目,其目标是开发一个Android应用程序,该应用程序能够使用FFMpeg作为底层引擎,在LAN设置中通过网络摄像头传输实时源.到目前为止,我做了以下 -
A.为以下版本编译和生成FFMpeg相关库 -
FFMpeg版本:2.0
NDK版本:r8e&r9
Android平台版本:android-16&android-18thisthisthisthis
工具链版本:4.6和4.8
平台构建于:Fedora 18(x86_64)
B.在适当的路径中创建文件Android.mk和Application.mk.
但是,当使用Java从应用程序层编写用于访问FFMpeg的适当功能的本机代码时,我坚持以下问题 -
a)我需要从本机到应用层提供哪些FFMpeg功能才能实现流式实时源?
b)为了编译Android的FFMpeg,我按照这个链接.编译选项是否足以处理*.sdp流或我是否需要修改它?
c)我是否需要使用live555?
我是FFMpeg和Android应用程序开发的新手,这将是我第一个针对Android平台的认真项目.我一直在寻找使用FFMpeg处理RTSP流的相关教程一段时间,但没有取得多大成功.此外,我尝试了VLC播放器的最新开发版本,发现它非常适合流式传输实时源.然而,这是一个复杂的野兽,我的项目的目标是非常有限的,主要是学习 - 在短时间内.
您能否就如何编写本地代码以利用FFMpeg库以及随后使用应用层中的这些功能来实时传输实时源提供一些指示(例如链接,文档或示例代码)?此外,如果您能从功能的角度(在语言无关的意义上)让我知道该项目所需的背景知识,我们将非常感激.
我有一个非常基本的单链表实现.然而,我的实现的问题是它在列表的开头打印了额外的零,而我没有为这个额外的节点显式分配任何存储.代码如下 -
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#define LEN 7
/* List node data structure */
typedef struct _ll_node_ {
int data;
struct _ll_node_ *next;
} node;
/*
* @brief Utility to print the state of the list
*/
void print_list(node *head)
{
int i = 0;
node *tmp = head;
while (tmp)
{
printf("Node:\t%d,\tValue:\t%d\n", ++i, tmp->data);
tmp = tmp->next;
}
printf("\n");
}
/*
* @brief Utility to add nodes to the list
*/
node *add_node(node *head, int data) …Run Code Online (Sandbox Code Playgroud)