我需要使用HTML 5音频来播放声音.但是,编解码器支持非常恼人:
我基本上需要在Wav和Ogg/Mp3中编码.然而,Wav的大小非常糟糕,这对我来说非常重要.所以,我想我应该去Mp3 + Ogg离开Opera和IE了吗?
是否可以使用.NET提供的图像文件编解码器编码的图像大小有限制?
我正在尝试编码大小为4GB的图像,但它根本无法正常工作(或无法正常工作,即写出不可读的文件).bmp,.jpg,.png或.tif编码器.
当我将图像大小降低到<2GB时,它确实适用于.jpg而不是.bmp,.tif或.png.
我的下一次尝试是尝试libtiff,因为我知道tiff文件适用于大图像.
什么是大图像的良好文件格式?或者我只是达到文件格式限制?
(所有这些都是在具有8 GB RAM的64位操作系统(WinXP 64)上完成的,并使用x64架构进行编译.)
Random r = new Random((int)DateTime.Now.Ticks);
int width = 64000;
int height = 64000;
int stride = (width % 4) > 0 ? width + (width % 4) : width;
UIntPtr dataSize = new UIntPtr((ulong)stride * (ulong)height);
IntPtr p = Program.VirtualAlloc(IntPtr.Zero, dataSize, Program.AllocationType.COMMIT | Program.AllocationType.RESERVE, Program.MemoryProtection.READWRITE);
Bitmap bmp = new Bitmap(width, height, stride, PixelFormat.Format8bppIndexed, p);
BitmapData bd = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, bmp.PixelFormat);
ColorPalette cp = bmp.Palette;
for (int i …Run Code Online (Sandbox Code Playgroud) 如果有人有一些使用AudioQueue编码/解码speex音频格式的经验?
我试图通过编辑SpeakHere示例来实现它.但不成功!
从Apple API文档中,AudioQueue可以支持编解码器,但我找不到任何样本.有人能给我一些建议吗?我已经在XCode 4的项目中成功编译了speex编解码器.
我的应用程序从服务器下载视频文件并使用VideoView播放.我在.mp4容器中使用H264(AVC)编码的文件.
在我的带有3.0.1的摩托罗拉Xoom上,它完美运行.
在我的三星Galaxy Tab 10.1与3.1,它不起作用.我只是收到错误消息"抱歉,视频无法播放".在代码中捕获错误只会给我'MEDIA_ERROR_UNKNOWN'.
我怀疑编解码器问题(尽管我的编解码器是有效的,根据http://developer.android.com/guide/appendix/media-formats.html).我拍摄相同的视频文件并手动将其复制到设备 - 设备会提示我转换视频.生成的文件在设备上的视频应用程序中正常播放.我将文件从设备上取回(在VLC中检查它告诉我视频编解码器现在是mp4v)并尝试通过我的应用程序播放它 - 相同的结果.
是否存在导致此问题的特定于3.1或Galaxy Tab的内容?
从ffmpeg中的编码示例中得到了这个.我可以稍微关注音频编码的作者示例,但我发现自己迷茫地看着C代码(我在块编号中评论,以帮助我引用我正在谈论的内容)...
static void video_encode_example(const char *filename)
{
AVCodec *codec;
AVCodecContext *c= NULL;
int i, out_size, size, x, y, outbuf_size;
FILE *f;
AVFrame *picture;
uint8_t *outbuf, *picture_buf; //BLOCK ONE
printf("Video encoding\n");
/* find the mpeg1 video encoder */
codec = avcodec_find_encoder(CODEC_ID_MPEG1VIDEO);
if (!codec) {
fprintf(stderr, "codec not found\n");
exit(1); //BLOCK TWO
}
c= avcodec_alloc_context();
picture= avcodec_alloc_frame();
/* put sample parameters */
c->bit_rate = 400000;
/* resolution must be a multiple of two */
c->width = 352;
c->height = 288;
/* frames …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用opencv编写视频.对我来说这很重要 - 因此它必须是一个无损编解码器.我在Ubuntu 12.04上使用OpenCV 2.4.1
以前,我使用的是fourcc代码0.这给了我想要的确切结果,并且我能够完美地恢复图像.
我不确定发生了什么,但截至最近的更新(2012年7月20日左右),出现了问题,我无法再使用这个4cc代码编写文件了.我真的不记得它是什么,但它可能来自更新,从我的软件中心删除一些软件,以及我在一般清洁期间做的一些其他事情......
当我使用mediainfo(http://www.fourcc.org/identifier/)检查旧文件时,我看到以下结果:
Complete name : oldsample.avi
Format : AVI
Format/Info : Audio Video Interleave
Format profile : OpenDML
File size : 1.07 GiB
Duration : 41s 467ms
Overall bit rate : 221 Mbps
Writing application : Lavf53.5.0
Video
ID : 0
Format : RGB
Codec ID : 0x00000000
Codec ID/Info : Basic Windows bitmap format. 1, 4 and 8 bpp versions are palettised. 16, 24 and 32bpp contain raw RGB samples
Duration : 41s …Run Code Online (Sandbox Code Playgroud) 我一直在使用C语言编写VoIP应用程序.该项目的目的是VoIP呼叫记录.它使用g729编解码器.我可以从RTP有效载荷中提取语音部分.如何将此Byte数组转换为.wav格式?请帮我.
我在这里使用以下代码(带有少量编辑):
import _pickle as cPickle
def unpickle(file):
fo = open(file, 'rb')
dict = cPickle.load(fo)
fo.close()
return dict
unpickle('data_batch_1')
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,我得到以下内容,前提是我正在使用Python 3.5.2:
Traceback (most recent call last):
File "open_batch.py", line 10, in <module>
unpickle('data_batch_1')
File "open_batch.py", line 5, in unpickle
dict = cPickle.load(fo)
UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 6: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
谢谢.
我想通过无线电通道以 48K 速率(对应于每通道 768 Kbit 的 16 位样本)传输立体声音频流,并使用 Cortex-M3 微控制器将其馈送到 DAC。虽然该通道在技术上以 2 Mbit 工作,但范围会随着速度迅速下降,我想在一定程度上对其进行优化。
是否有任何无损音频编解码器可以在具有约 8K 内存的微控制器上工作,大约。20 MIPS 的处理能力、32 位硬件乘法器和没有硬件除数?我不需要很大的压缩比,但它应该正确处理流错误并且在播放中没有长时间的停顿。
我需要一种快速可靠的方法来获取视频的总帧数。
以下是我尝试过的方法及其缺陷:
ffprobe(快速方式)
ffprobe -select_streams v:0 -show_entries 流=nb_frames -of 默认=noprint_wrappers=1 input.mp4
问题:经常返回 N/A,不可靠。
ffprobe(慢速方式)
ffprobe -count_frames -select_streams v:0 -show_entries 流=nb_read_frames -of default=nokey=1:noprint_wrappers=1 input.mp4
问题:速度非常慢,较长的视频可能需要一分钟。
ffmpeg(快速方式)
ffmpeg -i input.mp4 -map 0:v:0 -c 复制 -f null -
问题:需要完全解码一次视频,速度相当慢
我知道我正在寻找的东西是可能的,因为某些软件(如 Topaz Video Enhance)可以做到这一点。但我不知道如何在我的 C# 项目或 ffmpeg 中实现这一点。