标签: codec

HTML5视频编解码器支持

HTML5视频标记支持哪些编解码器?

它会因浏览器而异,还是会支持特定编解码器的规范?

video html5 codec html5-video

14
推荐指数
2
解决办法
9464
查看次数

如何在Android MediaCodec中播放原始NAL单元

我最初尝试过如何在Andoid exoplayer中播放原始NAL单元?但是我注意到我必须做一些低级别的事情.

我发现了这个简单的MediaCodec示例.正如您所看到的,它是一个在传递给它的表面上播放文件的线程.

注意这些线条

mExtractor = new MediaExtractor();
mExtractor.setDataSource(filePath);
Run Code Online (Sandbox Code Playgroud)

看起来我应该创建自己的MediaExtractor,而不是从文件中提取视频单元,它将使用我将提供的缓冲区中的h264 NAL单元.

然后我可以打电话mExtractor.setDataSource(MediaDataSource dataSource),看看MediaDataSource

它有 readAt(long position, byte[] buffer, int offset, int size)

这是它读取NAL单位的地方.但是,我应该如何通过它们?我没有关于需要读取的缓冲区结构的信息.

我应该通过byte[] buffer其中的NAL单位,如果是,以哪种格式?偏移量是多少?如果它是一个缓冲区,我不应该只删除读取的行,因此没有偏移或大小?

顺便说一下,h264 NAL单元是流媒体单元,它们来自RTP数据包,而不是文件.我将通过C++获取它们并将它们存储在缓冲区中,尝试传递给mediaExtractor.

更新:

我一直在阅读很多关于MediaCodec的内容,我想我更了解它.根据https://developer.android.com/reference/android/media/MediaCodec,一切都依赖于这种类型的东西:

 MediaCodec codec = MediaCodec.createByCodecName(name);
 MediaFormat mOutputFormat; // member variable
 codec.setCallback(new MediaCodec.Callback() {
   @Override
   void onInputBufferAvailable(MediaCodec mc, int inputBufferId) {
     ByteBuffer inputBuffer = codec.getInputBuffer(inputBufferId);
     // fill inputBuffer with valid data
     …
     codec.queueInputBuffer(inputBufferId, …);
   }

   @Override
   void onOutputBufferAvailable(MediaCodec mc, int …
Run Code Online (Sandbox Code Playgroud)

video android codec h.264

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

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

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

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

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

linux video decoding codec h.264

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

获得支持的Android设备编解码器

有没有办法向Android设备询问它支持的编码音频和视频编解码器?

我发现设备不支持http://developer.android.com/guide/appendix/media-formats.html中列出的某些编解码器, 并且似乎有设备支持其他未列出的编解码器.

android codec mediarecorder

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

它是什么编解码器

我有一个压缩文件,其大小为728,不知何故,我知道这是一个音频文件,它持续1040毫秒

压缩文件结构很简单:

它由14个字节块组成,每个块以0x0C开头:

0C XX xx月xx xx月xx xx月xx xx月xx xx月xx xx月xx 0C xx月xx xx月xx xx月xx xx月xx xx月xx xx月xx XX 0C xx月xx xx月xx xx月xx xx月xx xx月xx xx月xx XX 0℃XX xx月xx xx月xx xx月xx xx月xx xx月xx xx月xx 0C xx月xx xx月xx xx月xx xx月xx xx月xx xx月xx XX 0C xx月xx xx月xx xx月xx xx月xx xx月xx xx月xx XX 0℃XX xx月xx xx月xx xx月xx xx月xx xx月xx xx月xx 0C XX xx xx xx xx xx xx xx xx xx xx xx xx

(xx)可以是任何十六进制数

您可以在此处下载压缩二进制文件:

http://dusijun.files.wordpress.com/2013/02/29-aud-bin.doc (请重命名为*.aud)

或doc格式的文本视图

http://dusijun.files.wordpress.com/2013/02/29-aud.doc

没有标题或元信息.块数取决于实际音频的长度.文件大小的音频持续时间约为1.42

例如

如果文件大小= …

audio file codec ios

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

OpenCV VideoWriter无法打开

我无法VideoWriter在Raspberry Pi(Raspbian Weezy)上实例化和打开用于录制视频的OpenCV .

我的项目是用C++编写的,但我编写了一个最小的Python程序来演示这个问题.

https://gist.github.com/chriscollins/11ff2f43852e1c93dae8

我的C++代码和上面的Python代码都在我的Windows机器上运行没有问题.有时候笔者不开,但是这是可以预料的-我没有安装所有列出的编解码器(编解码器的列表来自开放CV源),但相当多的人正常工作.然而,在Raspberry Pi上,C++代码和Python代码都失败了,VideoWriter永远不会被打开.在上面的Python代码中,writer.isOpened()当在Raspberry Pi上运行时,为每个编解码器返回false.

我已将chown目标目录编辑为我正在运行Python脚本的用户,并将chmod其设置为ded,777因此我不相信它是权限问题.我认为它可能与我如何安装OpenCV或其某些依赖项有关,但我不确定如何纠正它.

我使用的安装过程如下:

  1. 更新通过固件/包rpi-update,apt-get updateapt-get upgrade.

  2. 通过以下方式安装以下依赖项apt-get: libjpeg8 libjpeg8-dev libjpeg8-dbg libjpeg-progs ffmpeg libavcodec-dev libavcodec53 libavformat53 libavformat-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libxine1-ffmpeg libxine-dev libxine1-bin libunicap2 libunicap2-dev swig libv4l-0 libv4l-dev python-numpy libpython2.6 python-dev python2.6-dev libgtk2.0-dev

  3. 下载并解压缩http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/root/opencv-2.4.9.

  4. cd /root/opencv-2.4.9并运行cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_PERF_TESTS=OFF -DBUILD_opencv_gpu=OFF -DBUILD_opencv_ocl=OFF.可通过https://gist.github.com/chriscollins/d8060e03a6acd6d4336c获得cmake的输出

  5. makemake …

linux opencv ffmpeg codec raspberry-pi

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

什么是python OpenCV中mp4视频的编解码器

fourcc = cv2.cv.CV_FOURCC(*'XVID')
Run Code Online (Sandbox Code Playgroud)

以上行用于avi视频.以同样的方式,我们在Ubuntu中使用哪种编解码器用于mp4视频?

python ubuntu mp4 opencv codec

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

使用 openCV 从 numpy 数组生成视频

我正在尝试使用 openCV VideoWriter 类从 numpy 数组生成视频。我正在使用以下代码:

import numpy as np
import cv2
size = 720*16//9, 720
duration = 2
fps = 25
out = cv2.VideoWriter('output.avi', cv2.VideoWriter_fourcc(*'X264'), fps, size)
for _ in range(fps * duration):
    data = np.random.randint(0, 256, size, dtype='uint8')
    out.write(data)
out.release()
Run Code Online (Sandbox Code Playgroud)

编解码器似乎已安装,因为 ffmpeg 可以转换为 x264 编解码器,并且安装了 libx264。代码运行时没有警告,但是生成的视频似乎不包含数据,因为在尝试使用 mpv 读取它们时我总是收到以下消息:

[ffmpeg/demuxer] avi:找不到流 0 的编解码器参数(视频:h264 (X264 / 0x34363258),无,1280x720):未指定的像素格式

导致此问题的原因可能是什么?

python video opencv ffmpeg codec

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

mp4 atom - 如何区分音频编解码器?是AAC还是MP3?

我正在研究一个mp4容器解析器,但是我疯狂地试图识别流的音频编解码器.我使用了QtAtomViewer和AtomicParsley,但是当我找到原子时:

trak-> mdia-> minf-> stbl-> STSD

即使mp4文件有mp3流,我也总是"mp4a".

我应该找一个".mp3"fourcc吗?

我附加了两个不同的mp4结构:带有AAC音频流的mp4容器

     Atom trak @ 716882 of size: 2960, ends @ 719842
     Atom tkhd @ 716890 of size: 92, ends @ 716982
     Atom mdia @ 716982 of size: 2860, ends @ 719842
         Atom mdhd @ 716990 of size: 32, ends @ 717022
         Atom hdlr @ 717022 of size: 33, ends @ 717055
         Atom minf @ 717055 of size: 2787, ends @ 719842
             Atom dinf @ 717063 of size: 36, ends @ 717099
                 Atom …
Run Code Online (Sandbox Code Playgroud)

audio mp4 codec

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

检查Android中的带宽率

我们可以选择检查Android中的网络连接类型(无论是3G,边缘还是gprs).

我需要检查带宽率.我需要发起一个电话.为此,我需要检查带宽率.仅在特定带宽之上,我需要为呼叫提供可见选项(以发起呼叫).

我需要以编程方式找到连接速度(Mobile Data Link,EDGE的连接速度).

android bandwidth codec

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