小编Mr.*_*r.G的帖子

使用FFMPEG和JNI压缩视频

我想创建一个Android应用程序,它可以找到一个视频文件(超过300 MB)并将其压缩到较小的mp4文件.

我已经尝试过这个了

由于您要压缩小尺寸视频(低于100 mb),因此本教程非常有效

所以我尝试使用JNI实现它.

我设法用这个来构建ffmpeg

但目前我想做的是压缩视频.我对JNI知之甚少.但我尝试使用以下链接了解它

如果有人可以指导我在打开文件之后压缩视频的步骤,那么使用非常棒的JNI,谢谢

java-native-interface android ffmpeg android-videoview

15
推荐指数
1
解决办法
8018
查看次数

如何从iOS中的CMSampleBufferRef获取当前捕获的Camera数据时间戳

我开发了iOS应用程序,它将捕获的摄像机数据保存到文件中并使用

(void) captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
Run Code Online (Sandbox Code Playgroud)

捕获CMSampleBufferRef,这将编码为H264格式,帧将使用AVAssetWriter保存到文件中.

我按照示例源代码创建了这个应用程序:

http://www.gdcl.co.uk//2013/02/20/iOS-Video-Encoding.html

现在我想获取已保存视频帧的时间戳来创建一个新的电影文件,

为此,我做了以下事情

1)找到文件并创建AVAssestReader读取文件

CMSampleBufferRef sample = [asset_reader_output copyNextSampleBuffer];

        CMSampleBufferRef buffer;
        while ( [assestReader status]==AVAssetReaderStatusReading ){
            buffer = [asset_reader_output copyNextSampleBuffer];

            //CMSampleBufferGetPresentationTimeStamp(buffer);

            CMTime presentationTimeStamp = CMSampleBufferGetPresentationTimeStamp(buffer);
            UInt32 timeStamp = (1000*presentationTimeStamp.value) / presentationTimeStamp.timescale;

            NSLog(@"timestamp %u",(unsigned int)timeStamp);


            NSLog(@"reading");
        //    CFRelease(buffer);
Run Code Online (Sandbox Code Playgroud)

打印值给我一个错误的时间戳,我需要获得帧的捕获时间.

有没有办法获得帧捕获的时间戳,

我已阅读以下链接以获取时间戳,但它没有正确阐述上面的问题 如何为AVWriter写入设置CMSampleBuffer的时间戳

更新

我在写入文件之前读取了样本时间戳,它给了我一个xxxxx值(33333.23232)

在我试图读取文件后,它给了我不同的价值,这有什么具体的原因?

objective-c avfoundation ios cmsamplebufferref

11
推荐指数
1
解决办法
5123
查看次数

Android Proguard构建Duplicate Zip

在我的Android应用程序中,我在libs文件夹中有多个第三方库

ex -: httpcore-4.2.4.jar , httpmime-4.2.5.jar,twitter4j-core-4.0.1.jar
Run Code Online (Sandbox Code Playgroud)

这些库没有重复,我很确定,但是当我创建proguard版本时,我得到了这个错误

(Duplicate zip entry [twitter4j-core-4.0.1.jar:META-INF/MANIFEST.MF])
.... (This error occurs for all of the library(libs)
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我试着用这个链接来解决,我尝试了它的每一个选项,但没有运气,

Proguard警告"无法写入资源[META-INF/MANIFEST.MF](重复的zip条目)"

有没有办法在输入jar上指定过滤器

android proguard

7
推荐指数
1
解决办法
990
查看次数

使用针对iOS和Android增强的Vuforia在纸张上显示动态文本

当移动设备将其放在纸上时,我需要在纸上显示文本,这基本上是增强现实功能.

文件中将有一个制作者,它自己的应用程序将识别标记,并应放置一个从服务器接收的动态文本.所以这个文本会改变

因此,作为一个开始,我决定使用Vuforia SDK,因为它比任何其他可用的sdk都有更多的支持.所以我设法在那里运行示例应用程序并在我自己的标记中显示"茶壶",

但现在是最难的部分,我需要在标记上渲染文本而不是茶壶.所以似乎我有两个选择

1)使用unity创建2d文本对象2)使用teGLot中的openGL渲染文本

所以我的问题是这样做的适当方法是什么?我知道OpenGL并不容易实现,即使Unity会提供多个不必要的文件也有利有弊

什么是最好的方法?

unity-game-engine ios vuforia

7
推荐指数
2
解决办法
1724
查看次数

如何在布局中呈现键盘而不缩小背景图像

我有一个滚动视图,里面有一个布局.在那个布局里面我已经包含了一个表单(基本上是textfields和textviews)

在运行时.如果我按下文本字段键盘将出现完全正常.但是有一个问题背景图像已经缩小.

有没有办法避免它.背景图片不应缩小

android android-softkeyboard

6
推荐指数
1
解决办法
2381
查看次数

使用android MediaCodec api压缩视频

我想将本地保存的视频文件压缩到较小的尺寸,以便上传到服务器.

由于我使用了MediaCodec,我找到了一些压缩视频的技巧.以下是我遵循的步骤

1).使用MediaExrtactor提取媒体文件并对其进行解码.2).使用所需的文件格式创建编码器3).创建muxer以将文件保存在本地存储中.(未完成)

问题:但我不知道如何对已经解码的流进行编码,并使用MediaMuxer将流保存到本地存储中.

public class CompressMedia {

    private static final String SAMPLE = Environment
            .getExternalStorageDirectory() + "/DCIM/Camera/20140506_174959.mp4";

    private static final String OUTPUT_PATH = Environment
            .getExternalStorageDirectory()
            + "/DCIM/Camera/20140506_174959_REC.mp4";

    private MediaExtractor extractor;
    private MediaCodec decoder;
    private MediaCodec encoder;
    String mime;

    private static final String MIME_TYPE = "video/avc";

    public void extractMediaFile() {

        // work plan
        // locate media file
        // extract media file using Media Extractor
        // retrieve decoded frames

        extractor = new MediaExtractor();
        try {
            extractor.setDataSource(SAMPLE);
        } catch (IOException e) { …
Run Code Online (Sandbox Code Playgroud)

compression android encode decode mediacodec

6
推荐指数
1
解决办法
1万
查看次数

如何降低UIScroll视图的滚动速度

我的iphone应用程序中有一个scrollview.在运行时我正在添加多个内容页面,用户可以水平滚动内容.

我在这里面临一个问题.考虑用户是否快速滚动它然后有时thr会延迟加载页面的内容.

无论用户是否尝试滚动视图,我都可以降低滚动速度.我想延迟滚动的速度

希望每个人都理解我的问题谢谢

iphone uiscrollview

5
推荐指数
1
解决办法
1495
查看次数

如何在ios中调整uilabel角度

我正在创建一个iphone app.in该应用程序我想根据附加的屏幕截图调整标签角度. 在此输入图像描述 (见120美元标签)

红色图像在背景中,我想将uilabel顶部角度调整

我用这个transform方法来旋转.但它并没有恰当的角度.标签缩小

testLabel.transform = CGAffineTransformMakeRotation(30 * M_PI / 180.0);
Run Code Online (Sandbox Code Playgroud)

iphone uilabel ios

4
推荐指数
2
解决办法
4423
查看次数

Android中的Gson属性顺序

我已经集成了Gson来创建一个用于Android应用程序请求的json.

这是我的模特课

public class TwitterUser {

@Expose
public String gid;
public String icon_url;
public Boolean is_app_user;
@Expose
public String displayName;

public TwitterUser(String l, String i, String url, Boolean app_user) {
    gid = i;
    displayName = l;
    icon_url = url;
    is_app_user = app_user;
}

public TwitterUser(String l, String i) {
    gid = i;
    displayName = l;
}

public String getGid() {
    return gid;
}

public void setGid(String gid) {
    this.gid = gid;
}

public String getIcon_url() {
    return icon_url;
}

public …
Run Code Online (Sandbox Code Playgroud)

java android gson

4
推荐指数
1
解决办法
2200
查看次数

在kotlin中意外的令牌(使用;在同一行上分离表达式)

我在我的android项目中使用kotlin,这是在java上开发的,我在服务层使用了kotlin数据类

现在我想在序列中添加备用标签

@SerializedName(value="name", alternate={"person", "user"}) val title:String,
Run Code Online (Sandbox Code Playgroud)

这给了我意想不到的令牌问题,它似乎来自kotlin方面

这似乎是kotlin问题可以有人指出我的问题

java android kotlin

3
推荐指数
1
解决办法
1647
查看次数

使用bitcode模式在iOS中编译FFMPEG

我编译了支持iOS 7和8的FFMPEG库,但是自从最近发布iOS 9以来,已经发布了一个名为bitcode模式的新功能,作为默认设置,此设置已设置为NO.

但如果我将其设置为是,则会执行以下错误,

libavdevice.a(avfoundation.o)'不包含bitcode.您必须在启用bitcode(Xcode设置ENABLE_BITCODE)的情况下重建它,从供应商处获取更新的库,或禁用此目标的bitcode.对于架构arm64

有没有办法编译在bitcode启用模式下支持FFMpeg的FFMPEG

这是我使用的构建脚本

#!/bin/sh

# directories
SOURCE="ffmpeg-2.6.2"
FAT="FFmpeg-iOS"

SCRATCH="scratch"
# must be an absolute path
THIN=`pwd`/"thin"

# absolute path to x264 library
#X264=`pwd`/fat-x264

#FDK_AAC=`pwd`/fdk-aac/fdk-aac-ios

CONFIGURE_FLAGS="--enable-cross-compile --disable-debug --disable-programs \
                 --disable-doc --enable-pic"

if [ "$X264" ]
then
    CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-gpl --enable-libx264"
fi

if [ "$FDK_AAC" ]
then
    CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-libfdk-aac"
fi

# avresample
#CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-avresample"

ARCHS="arm64 armv7 x86_64 i386"

COMPILE="y"
LIPO="y"

DEPLOYMENT_TARGET="6.0"

if [ "$*" ]
then
    if [ "$*" = "lipo" ]
    then
        # skip compile
        COMPILE=
    else
        ARCHS="$*" …
Run Code Online (Sandbox Code Playgroud)

iphone ffmpeg ios ios9 bitcode

1
推荐指数
1
解决办法
1524
查看次数