标签: decoding

免费/开放h.264视频解码库?(非GPL)

主要玩家似乎是x264和xvid,两者都是GPL.这意味着我们无法将解码功能集成到回放应用程序中,而无需将整个事物作为GPL许可,因此我们也无法使用.

首选目标平台是Linux.任何非病毒开放许可证都没问题,我们非常乐意提供我们对库所做的任何更改的来源,而不是我们的整个应用程序.

有没有什么?或者我们现在应该在开发过程中使用GPL作为测试,并计划在发货之前用商业许可的编解码器替换它?

linux video decoding codec h.264

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

检测文件是否为MP3

我正在编写一个C++库,用于在不同格式/编解码器之间解码和编码音频.我有一个例程,可以在加载所需的编解码器库之前快速检测格式.

对于WAV文件,可以在文件开头简单地查找ASCII值"RIFF"和"WAVE".这同样适用于FLAC,我们可以简单地读取前4个字节,即"fLaC".

但是如何快速检测文件是否是MP3?我不能依赖文件扩展名.我也无法尝试解码第一个MP3帧,因为文件开头可能还有其他数据(例如:ID3,封面图片等).

mp3 header decoding detect flac

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

java如何解码获取url参数收到抛出BeanParam

我收到了对此Web服务的GET响应

@GET
@Path("/nnnnnn")
public Response pfpfpfpf(@BeanParam NNNNNN n)
Run Code Online (Sandbox Code Playgroud)

该班NNNNN有:

@QueryParam("parameter")
private String parameter;
Run Code Online (Sandbox Code Playgroud)

为此,parameter有一个得到和设置.

我发送了一个带有查询参数的get请求,它正在自动绑定到我的选项NNNNN,一切都很棒.

但是,现在我在查询网址中发送日语字符串.我在发送之前用UTF-8对参数进行编码,我必须使用UTF-8解码它们.

但我的问题是我应该在哪里调用URLDecoder?我试图在该参数的getter中调用它,但它不起作用,我一直有类似的东西,C3%98%C2%B4%C3%98%C2 而不是日语字符

java jax-rs jersey decoding urldecode

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

在没有播放的情况下解码Android上的编码音频数据(MP3等)

简短版本:将MP3(并且理想情况下是AAC/Ogg/WMA)中的数据编码成Java阵列或ByteBuffer的最佳方法是什么?

我正在整理一个程序,它将减慢和加速声音文件作为其功能之一.这适用于WAV文件,这是一个标题加上需要发送到扬声器的确切二进制数据,现在我需要为MP3实现它(理想情况下,这也支持AAC,Ogg和WMA,但是那些不太受欢迎的格式,这不是必需的).Android没有公开接口来解码MP3而不播放它,所以我需要创建该接口.

虽然我对其他人开放,但有三种选择可供选择:

1)编写我自己的解码器.我已经有一个功能帧检测器,我希望用于选项(3),现在应该只需要实现霍夫曼解码表.

2)使用JLayer或等效的Java库来处理解码.我不清楚这里的许可证后果是什么.

3)连接到libmedia库/ MediaPlayerService.这就是SoundPool所做的事情,而且该服务的使用量使我相信,虽然它正式不稳定,但实现并不是任何地方.这意味着编写JNI代码以连接到服务,但我发现这是一个很深的兔子洞.在表面上,我遇到了sp <>模板的问题.

audio mp3 android decoding

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

将十六进制转换为ascii字符

是否可以用0-9a-zA-Z字符序列表示十六进制字符序列(0-9A-F),因此结果序列更小并且可以解码?

例如:

$hex = '5d41402abc4b2a76b9719d911017c592';
echo $string = encode($hex); // someASCIIletters123
echo decode(string) == $hex; //true
Run Code Online (Sandbox Code Playgroud)

php encoding decoding

12
推荐指数
3
解决办法
4万
查看次数

如何在libavcodec中设置解码像素格式?

我通过libavcodec解码视频,使用以下代码:

//Open input file
if(avformat_open_input(&ctx, filename, NULL, NULL)!=0)
    return FALSE; // Couldn't open file
if(avformat_find_stream_info(ctx, NULL)<0)
    return FALSE; // Couldn't find stream information
videoStream = -1;
//find video stream
for(i=0; i<ctx->nb_streams; i++)
{       
    if((ctx->streams[i])->codec->codec_type==AVMEDIA_TYPE_VIDEO)
    {
        videoStream=i;
        break;
    }
}
if (videoStream == -1)
    return FALSE; // Didn't find a video stream
video_codec_ctx=ctx->streams[videoStream]->codec;
//find decoder
video_codec=avcodec_find_decoder(video_codec_ctx->codec_id);
if(video_codec==NULL)
    return FALSE; // Codec not found
if(avcodec_open(video_codec_ctx, video_codec)<0)
    return -1; // Could not open codec
video_frame=avcodec_alloc_frame();
scaled_frame=avcodec_alloc_frame();
static struct SwsContext *img_convert_ctx; 
if(img_convert_ctx == NULL) …
Run Code Online (Sandbox Code Playgroud)

c c++ ffmpeg decoding libavcodec

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

如何解码&amp; 从URL,以便header()工作(urldecode无法正常工作)

我有以下网址: $url = 'http://mysite.com/?p=welcome&amp;x=1&amp;y=2';

我需要解码它以便header("Location: $url");实际工作.

但是,使用urldecode($url)不起作用,因为它没有解码&amp;- > &因此浏览器被重定向到http://mysite.com/?p=welcome&amp;x=1&amp;y=2失败.

我需要它来解码,使它看起来像: http://mysite.com/?p=welcome&x=1&y=2

我怎么做?

php header decoding urldecode

12
推荐指数
3
解决办法
2万
查看次数

如何处理cv :: VideoCapture解码错误?

我正在使用OpenCV的VideoCapture(使用ffmpeg支持编译)从IP摄像机传输H264内容.

到目前为止,工作正常,但每隔一段时间我就会出现解码错误(来自我假设的ffmpeg):

[h264 @ 0x103006400] mb_type 137 in I slice too large at 26 10
[h264 @ 0x103006400] error while decoding MB 26 10
[h264 @ 0x103006400] negative number of zero coeffs at 25 5
[h264 @ 0x103006400] error while decoding MB 25 5
[h264 @ 0x103006400] cbp too large (421) at 35 13
[h264 @ 0x103006400] error while decoding MB 35 13
[h264 @ 0x103006400] mb_type 121 in P slice too large at 20 3
[h264 @ 0x103006400] error …
Run Code Online (Sandbox Code Playgroud)

opencv ffmpeg decoding h.264 ip-camera

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

执行失败:0x80070057,使用dxva2通过ffmpeg解码视频时

我已经使用ffmpeg成功实现了一个视频播放器.我现在正在尝试使用硬件解码,但我面临一些问题.我发现了一篇帖子,我将其作为起点:http://comments.gmane.org/gmane.comp.video.ffmpeg.libav.user/13523

我已经更新了为解码器设置必要内容的代码.更新后的代码可以在这里找到:https://drive.google.com/file/d/0B5ufHdoDzA4ieVk5UVpxcDNzRHc/view?usp=sharing

这就是我用它来初始化解码器的方法:

// Prepare the decoding context
AVCodec *codec = nullptr;
_codecContext = _avFormatContext->streams[_streamIndex]->codec;
if ((codec = avcodec_find_decoder(_codecContext->codec_id)) == 0)
{
    std::cout << "Unsupported video codec!" << std::endl;
    return false;
}

_codecContext->thread_count = 1;  // Multithreading is apparently not compatible with hardware decoding
InputStream *ist = new InputStream();
ist->hwaccel_id = HWACCEL_AUTO;
ist->hwaccel_device = "dxva2";
ist->dec = codec;
ist->dec_ctx = _codecContext;
_codecContext->coded_width = _width;
_codecContext->coded_height = _height;

_codecContext->opaque = ist;
dxva2_init(_codecContext);

_codecContext->get_buffer2 = ist->hwaccel_get_buffer;
_codecContext->get_format = …
Run Code Online (Sandbox Code Playgroud)

hardware ffmpeg decoding

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

如何解码Minecraft示意图(nbt)文件中的数据(即块状态)字节?

我解析一个schematic file具有以下结构

.schematic文件格式是由社区创建到存储的Minecraft世界的部分与第三方程序使用。原理图为NBT格式

命名二进制变量(NBT)文件格式是使用的游戏的Minecraft为各种事情非常简单的结构化的二进制格式

Data Value小号定义的Minecraft地形的部分。

我检索block data每个Minecraft块,并需要弄清楚如何解码这些字节。这是《我的世界》Stairs方块的一个例子

例如,阶梯块数据包括:

在此处输入图片说明

我可以使用nbt-js解析整个原理图文件,这使我可以像这样访问块数据:

var b = schem.value.Data.value[index];
Run Code Online (Sandbox Code Playgroud)

我使用以下代码解码楼梯块数据位数据

var facing = b & 0x03;
var half = (b >> 2) & 0x01;
var shape = (b >> 3) & 0x03;
Run Code Online (Sandbox Code Playgroud)

这些配置值对于确定应如何渲染楼梯楼梯至关重要。例如,我使用面值旋转块:

block.rotateX(facing);
Run Code Online (Sandbox Code Playgroud)

但是,对于每种块类型,位的解释都不同,这在我能找到的任何地方都没有定义。

javascript decoding minecraft

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