支持H.265/HEVC网络浏览器
是否有任何网络浏览器可以在HTML5视频元素中播放H.265/MPEG-4 HEVC编解码器?在哪个平台或硬件上? 当可用硬件解码时,我听到有关HEVC支持的谣言.使用HEVC硬件解码的当前GPU和CPU运输,我想知道其他浏览器供应商正在关注哪些浏览器. Firefox已经适用于H.264 解决方案 它在IE和Edge中起作用,但前提是有硬件支持.据报道,它在具有硬件支持的某些设备上可以在Android浏览器和Chrome中使用. . 来源: https://caniuse.com/#feat=hevc n.b.如果您努力使用H.265在网络内容中嵌入更好质量的视频,则应该考虑转编码和包括WebM: http://caniuse.com/webm/embed/.支持也是片状的,但由于芯片制造商越来越多地包括标准的硬件加速度(HEVC和VP9) ,因此绝对会迅速改善. 其他解决方案 否,没有浏览器支持H.265.在不久的将来不太可能增加支持. 编辑:
0 2024-04-03
编程技术问答社区
如何使用.so文件在安卓应用程序中为我的自定义视频编解码器创建一个.apk文件
我想创建一个可以以特定格式播放视频的应用程序或.APK文件. 为此,我已经编译了我的源文件并处理了对象文件, 从对象文件中,我使用命令 生成了一个共享库文件(.so) gcc -c -fPIC hello.c -o hello.o gcc hello.o -shared -o libhello.so 有人可以帮助我采用从Android Eclipse或Android SDK 中创建APK文件的步骤 创建APK文件时Java文件的重要性是什么... 解决方案 根据您上面提出的内容,我认为您不是使用Android NDK提供的工具链编译自定义解码器代码.我执行的任务与您应该执行的任务相同. First of all what you need to do is: 1)创建一个Android项目 2)在Android项目的根目录的侧面,创建一个称为" JNI"的文件夹 3)将所有" C"代码(自定义解码器代码)转储到此文件夹中. 4)在具
2 2024-02-17
编程技术问答社区
不能播放此视频。安卓视频查看安卓设备录制的mp4
我已经与其他formats一起寻找了现有的潜在解决方案,但这些解决方案仍然响应上述错误. 最后,用同一设备录制了视频,并将其用作此应用程序的资源,但仍然不起作用. 设备:SGS2,联想a820 视频类型:MPEG-4 video (video/mp4) videoView = (VideoView)findViewById(R.id.videoView); videoView.setVideoPath("android.resource://raw/sample.mp4"); videoView.start(); 解决方案 请参阅下面的代码段...问题是在路径声明中. String uriPath = "android.resource://"+getPackageName()+"/"+R.raw.aha_hands_only_cpr_english; Uri uri = Uri.parse(uriPath);
6 2024-02-02
编程技术问答社区
硬件加速的安卓版FFmpeg?
我为Android编辑了较旧的FFMPEG版本(如果我没记错的话是0.6.x). FFMPEG解码视频框架,缩放它,然后我使用OpenGL将其绘制在屏幕上.据我所知,问题是解码和扩展 - - 它们没有加速硬件. 我的问题是: 是为ARM(Android)处理器加速FFMPEG硬件的最新版本吗? 我是错误的方式吗?即,有更好的方法吗? "此"正在播放H264 HD视频作为视频实时壁纸 - 帧构架需要高,因此,随时需要硬件加速度. 解决方案 我认为,是的.请参阅: http://ffmpeg.org/#pr9 . 在Android上具有硬件加速的硬件解码的主要版本是和谐的0.9 如果您使用利用硬件加速的解码器,那么当它可用时,我看不出如何做得更好... 其他解决方案 您需要的是ffmpeg汇编的手臂霓虹灯.看: 其他解决方案 您也可以尝试使用libstagefright_h264来编译FFMPEG,我能够使其获得编译和读取视频文件属性,但无法让Avc
24 2024-01-31
编程技术问答社区
在安卓系统中用webrtc保存视频文件的问题
我正在开发一个基于WEBRTC的视频聊天应用程序,目前正在使用视频调用,但是我想使用Videofilerenderer录制远程视频流的视频,例如: 这是我正在使用的实现.它可以毫无问题地将视频保存到文件中,但是我只能在使用编解码器后使用桌面播放它,因为该文件为.y4m而不是.mp4,并且当我尝试使用视频播放时,它说它无法播放视频,即使我尝试使用Android随附的VideoPlayer播放视频,它也无法播放它,我也只能使用MXPLAYER,VLC或任何其他在桌面中具有编解码器的应用程序播放. 简化了一个问题: How can I play video.y4m on native android VideoView? 我将更多地简化它,我会假设我不了解录制文件的格式,这是我用来记录文件的代码: 开始录制时: remoteVideoFileRenderer = new VideoFileRenderer( fileToRecordTo.
34 2023-12-01
编程技术问答社区
如何为 H265/HEVC 对 RTP 数据(通过 UDP)中的碎片帧进行解包?
我试图使原始RTP H265流封闭并重建它,以便可以通过解码器读取它. 我能够通过识别NALS和FU细节来从RTP缓冲区中提取单个和碎片的单位.但是,我找不到有关处理NAL的精确细节,以放在零碎的单元的缓冲区前. 这是我要做的: 当有效载荷标头类型为49时,我知道这是一个零碎的单元. i然后查找第三个字节,其尾随6个字节给您FU类型/NAL类型,前两个位告诉它是启动或末端的框架. 这是我重建nal的代码: if(type == 49){ unsigned char fu_header = (unsigned char) *(rtpPayloadPos+2); unsigned char fu_head_se = (fu_header & 0xC0) >> 6; nal_type = fu_header & 0x3F; switch(fu_head_se){ case 0x02: //nal start
4 2023-11-18
编程技术问答社区
三星S5设备中的视频压缩问题
我试图压缩视频.它在所有设备中都可以正常工作,但是在 samsung s5 中,它给出了以下错误. 错误日志:android.media.MediaCodec$CodecException: Error 0xffffec77 下面具有我的压缩功能 public boolean convertVideo(final String path) { MediaMetadataRetriever retriever = new MediaMetadataRetriever(); retriever.setDataSource(path); String width = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT); String height = retriever.extractMetadata(MediaMetadataRetrieve
VideoCapture在OpenCV 2.4.2中无法工作
我最近在Ubuntu 12.04中安装了OpenCV 2.4.2. cap = VideoCapture(0) 正在工作.但是我无法从某些视频源中获取帧. cap = VideoCapture("input.avi") img = cap.read() 给我一​​个零元素的numpy. 我还安装了FFMPEG 0.11,X264的最新快照,V4L-0.8.8(所有都是最新的稳定版本) cmake -D WITH_QT=ON -D WITH_FFMPEG=ON -D WITH_OPENGL=ON -D WITH_TBB=ON -D BUILD_EXAMPLES=OFF WITH_V4L=ON .. make sudo make install 当我做cmake时,我得到了这个 - GNU GCC的检测版本:46(406) - 找到OpenExr:/usr/lib/libilmimf.so - 寻找linux/videodev.h - 寻找
30 2023-11-18
编程技术问答社区
OpenCV(C++):与输入相比,写出的文件很大
我正在尝试使用OpenCV(C ++)读取视频文件,将过滤器应用于每个帧,然后将新的修改后帧写入输出文件. 代码的关键部分是: int out_format = CV_FOURCC('M','P','4','2'); // can be another one double fps = media.get(CV_CAP_PROP_FPS), width = media.get(CV_CAP_PROP_FRAME_WIDTH), height = media.get(CV_CAP_PROP_FRAME_HEIGHT); // On Linux FFMPEG is used to write videos VideoWriter writer("./" + outputname + ".mkv", out_format, fps, Size(width, height) ); ....... ....... writer.write(newFrame);
8 2023-11-18
编程技术问答社区
如何用FFmpeg将灰度视频流编码为MPEG-1?
我有一个灰度视频流从一台Firewire天文学摄像机上传来,我想使用FFMPEG压缩视频流,但它不会接受MPEG1VIDEO编解码器的单个字节像素格式.如何使用FFMPEG API将灰度视频帧转换为FFMPEG接受的框架格式? 解决方案 MPEG-1仅接受YUV,因此您需要将框架转换为YUV格式.使用通过调用sws_getContext()创建的SwsContext结构,然后使用sws_scale(). 其他解决方案 灰度和YUV的关系非常简单 - YUV的" Y"与灰度完全相同. 将灰度转换为yuv的简单方法是 参见 this 参考量表之间的转换: 因此: Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16 Cr = V = (0.439 * R) - (0.368 * G) - (0.071 * B) + 128 Cb = U = -(0.148 * R) - (0.291 * G)
18 2023-03-23
编程技术问答社区
通过图像比较算法的视频编解码器?
也许有人知道这是否可能. 比较图像质量几乎不可能没有主观影响.当某人对图像质量的评价为好时,至少有一个人,那并不是这样. 人类的偏好总是不同的. 所以,我想知道是否有通过将原始图像与以下问题进行比较的算法"对图像质量进行评分" 颜色变化(像素的差异像素 模糊率 工件和大小写 第一个是最简单的,因为您可以仅检查颜色的不同,并且可以在每个十六进制中给出3个值 两者都持续一次,我不知道这是否可能,但是可以通过边缘找到阻塞. ,国王的任务就是这样做,而不是一个图像,因为视频是用几帧完成的. 也许您的专家程序员可以告诉我,如果可以进行这样的自动化算法以将一些客观的测量划分带入评级图像质量.这也许可以使一些H.264平静下来,比x264好,并且比VP8和Blaaah People更好:) Andreas 第一个发布在此处发布 index.php?name = pnphpbb2&file = viewtopic&p = 9705 解决方案 这是一个
32 2023-03-22
编程技术问答社区
视频|编解码器通过图像比较算法进行评分?
也许有人知道这是否可能. 比较图像质量几乎不可能没有主观影响.当某人对图像质量的评价为好时,至少有一个人,那并不是这样. 人类的偏好总是不同的. 所以,我想知道是否有通过将原始图像与以下问题进行比较的算法"对图像质量进行评分" 颜色变化(像素的差异像素 模糊率 工件和大小写 第一个是最简单的,因为您可以仅检查颜色的不同,并且可以在每个十六进制中给出3个值 两者都持续一次,我不知道这是否可能,但是可以通过边缘找到阻塞. ,国王的任务就是这样做,而不是一个图像,因为视频是用几帧完成的. 也许您的专家程序员可以告诉我,如果可以进行这样的自动化算法以将一些客观的测量划分带入评级图像质量.这也许可以使一些H.264平静下来,比x264好,并且比VP8和Blaaah People更好:) Andreas 第一个发布在此处发布 index.php?name = pnphpbb2&file = viewtopic&p = 9705 解决方案 这是一个
20 2022-11-23
编程技术问答社区
如何访问HTML5视频解码功能?
HTML5具有元素,该元素从服务器下载视频,解码并渲染.通常,如果并非总是会使用硬件加速解码(如果有). 可以访问仅解码功能吗?原因是我正在使用自定义流协议,因此在客户端,我已经编码了我需要解码和渲染的视频流. 不幸的是,视频解码器的纯JavaScript实现不适用,因为它们无法提供足够的性能.我仅对HVEC或H.264编解码器感兴趣. 解决方案 此问题的解决方案是 webrtc .可以集成外部编码器或使用嵌入式编码器.在浏览器中,webrtc客户端使用H/W解码. WEBRTC还提供实时流功能.兼容性还不错. 其他解决方案 可以访问仅解码功能吗? 不幸的是不是.我们只能访问与流源/源文件相关的高级API,具有有限的影响力,例如基于时间的位置,播放状态和各种事件.我们可以从当前解码的帧中将框架绘制为RAW RGB(a),但仅此而已. 原因是我正在使用自定义流协议等 客户端我已经编码了我需要解码的视频流和 渲染 您没有描述此
16 2022-11-17
编程技术问答社区
我怎样才能知道任何h264文件的持续时间?
我有一个文件,其中只有H264帧的形式为NAL单元. 所以现在有什么方法,所以我可以计算该文件的持续时间? 我不知道文件中有多少帧. 我只有文件大小. ps:我要做的就是使用C语言和Linux平台. 解决方案 容器文件 首先,没有H264 file的东西.可以有一个容纳H264编码视频的容器文件(MP4,AVI,MKV).该容器格式通常还包含数据,告诉您包含的视频持续时间.因此,您必须解析该文件,检查格式文档以查看持续时间保存的位置,然后提取. 最简单的方法是像奥古斯托的建议一样使用ffmpeg. nal字节流 如果您的文件仅是nal单位,那么一个接一个地保存了一个,例如在nal字节流中, 您可以获得视频持续时间!由于H264编码的图片无法容纳定时信息. 如果是这样,如果您知道视频FPS,您仍然可以进行近似...您需要计算文件中的所有帧: 序列参数集 图片参数集 流的结尾 序列结束 过滤数据 访问单元定界符 然后进行
20 2022-10-28
编程技术问答社区
如何用FFmpeg对灰度视频流进行编码?
我有一个灰色的视频流从火线天文摄像机,我想使用FFmpeg来压缩视频流,但它不会接受单字节像素格式的MPEG1VIDEO编解码器。如何使用FFmpeg API将灰度视频帧转换为FFmpeg接受的帧格式? 解决方案 MPEG-1只接受YUV。所以将你的帧转换为yuv。使用SwsContext结构,通过调用sws_getContext创建它,然后使用sws_scale。 尝试rawvideo编解码器。你需要指定描述帧格式的pix_fmt参数 - 你的每个像素帧是1字节,但是它们是灰度的(你没有提到)?例如 ffmpeg -i INPUT -vcodec rawvideo -pix_fmt yuv420p output.avi 这里pix_fmt指定yuv420p这不是你需要的。使用适当的框架类型。 我将发布pix_fmt值的头文件的内容。尝试看看您的帧类型是否在其中定义。例如,查看PIX_FMT_RGB8(这是8位)。 / *
4454 2022-07-19
编程技术问答社区