标签: video-encoding

块运动补偿编码器 - 如何处理参考帧中的块噪声?

我不熟悉视频压缩,但目前正在使用H.264压缩残留图像的项目

我的问题更多是关于视频编码器的一般性质.据我所知(正如维基百科所解释的那样),块运动补偿编码器将当前帧划分为一些非重叠块,对于每个块,它在当前块来自的参考帧中进行检查,然后计算出它的差异.期望的块和运动补偿块,然后以某种方式对该残差进行编码.

维基百科指出:"块运动补偿的主要缺点是它会在块边界处引入不连续性(块效应).这些伪像以锐利的水平和垂直边缘的形式出现,很容易被人眼发现并产生振铃效果(用于残差帧的变换编码的傅里叶相关变换中的高频子带中的大系数.

因此,由于参考帧已经包含块伪像(因为它被编码),然后这些块伪像被移位到当前块并且计算残差,然后由边界处的块伪像创建的高频.移位块也将显示为残差中的不连续性.并且不连续性通常对压缩不利.

在压缩残差之前,运动补偿块编码器是否以某种方式处理此块伪像?因为它确切地知道块是如何移位的,所以它知道块边界的位置,并且可以在编码残差之前或期间对它们做些什么,在这个地方移除/忽略不必要的高频.如果在像H.264这样的编解码器中执行这样的事情,有人可以解释编码器如何做到这一点的主要概念,给它一些术语等等吗?编码器如何处理参考帧中的块伪像?

compression video encoding video-encoding

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

我们可以通过使用 FFMPEG 来限制最大 fps 吗?

我想在处理视频时限制最大 fps。
例如:设置限制为每秒 30 帧。
如果我以 24 fps 处理视频,则不会更改 fps,但如果以 60 fps 处理视频,则将 fps 更改为 30。
是否可以仅使用 FFmpeg(带有过滤器或其他东西)来完成?
我认为可以通过使用这样的过滤器来完成:

-filter:v "fps=fps='min($CURRENT_FPS,30)'"
Run Code Online (Sandbox Code Playgroud)

但我不知道是否可以从表达式中获取当前的 fps。

ffmpeg frame-rate video-processing video-encoding

6
推荐指数
0
解决办法
663
查看次数

使用网络摄像头通过 ffmpeg 进行极低延迟的流式传输

我正在尝试配置 ffmpeg 以使用网络摄像头进行实时视频流。我使用的ffmpeg编码器命令如下。

ffmpeg -f v4l2 -input_format yuyv422 -s 640x480 -i /dev/video0 -c:v libx264 -profile:v baseline -trellis 0 -subq 1 -level 32 -preset superfast -tune zerolatency -me_method epzs -crf 30 -threads 0 -bufsize 1 -refs 4 -coder 0 -b_strategy 0 -bf 0 -sc_threshold 0 -x264-params vbv-maxrate=2000:slice-max-size=1500:keyint=30:min-keyint=10: -pix_fmt yuv420p -an -f mpegts udp://192.168.1.8:5001
Run Code Online (Sandbox Code Playgroud)

用于显示视频源的 ffplay 命令是,

ffplay -analyzeduration 1 -fflags -nobuffer -i udp://192.168.1.8:5001
Run Code Online (Sandbox Code Playgroud)

但是,我在视频流中遇到了 0.5 - 1.0 秒的延迟。有没有办法将其减少到小于 100 毫秒。此外,当我用 x11grab 的屏幕捕获替换 v4l2 相机捕获时,流几乎是实时的,我没有遇到明显的延迟。此外,将编码器从 x264 更改为 mpeg2 对延迟没有影响。此外,来自 ffmpeg 的统计数据显示编码器以 30fps …

ffmpeg video-encoding video-streaming live-streaming libx264

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

将 Mapbox-GL 导出为视频

我想创建用户生成的地图和路径并将其导出到视频。在此页面上,https://uber.github.io/kepler.gl/#/demo/ukcommute,我看到它们导出到照片。是否可以从 mapboxGL 地图创建视频?

video-encoding mapbox mapbox-gl

6
推荐指数
0
解决办法
410
查看次数

如何转换上传的视频并从此文件获取屏幕截图?

我正在建立一个cms,希望用户能够上传视频,但是我对视频上传和转换不熟悉。是否有示例或有人编码过这样的解决方案?我听说过ffmpeg,但是我不知道如何将其与asp.net集成。

作为一个简单的解决方案,我可以让我的客户上传flv文件,但随后我仍然需要从该fvl中获取屏幕截图。

谢谢

asp.net flash flv video-processing video-encoding

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

EC2用于视频编码

我有一项潜在的工作,需要我用FFMPEG和x264进行一些视频编码。我将有一系列文件,需要对它们进行一次编码,然后才能将实例关闭。由于我不确定x264和FFMPEG的资源利用率,应该获得哪种实例?我在想

高CPU超大型实例

7 GB的内存
20个EC2计算单元(8个虚拟内核,每个虚拟内核具有2.5个EC2计算单元)
1690 GB的实例存储
64位平台
I / O性能:高
API名称:c1.xlarge

或者,或者

集群GPU四重超大型实例

22 GB内存
33.5 EC2计算单元(2个Intel Xeon X5570,四核“ Nehalem”架构)
2个NVIDIA Tesla“ Fermi” M2050 GPU
1690 GB的实例存储
64位平台
I / O性能:很高(10千兆以太网)
API名称:cg1.4xlarge

我应该使用什么?x264 / FFMPEG在更快/更多的CPU上是否表现更好,还是真的使GPU更强大?无论如何,似乎Cluster GPU似乎是性能更高的实例。我该怎么选?

ffmpeg amazon-ec2 video-encoding x264

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

关于用于视频编码的最佳质量/性能H264编码器的建议?

我正在寻找一种速度快,需要较少CPU能力并生成质量非常好的mp4视频的视频编码器.

输入视频可以是任何格式并由用户上传.

我所知道的只是FFMPEG库.

还有什么更好的吗?

该程序必须具有我感兴趣的批处理实用程序(exe).

如果您能分享您的知识,我将不胜感激.

谢谢

video mp4 ffmpeg video-encoding h.264

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

直接在GPU上将FBO纹理编码为H.264视频

我打算编写一个应用程序,其中我需要能够对来自FBO附加纹理的给定图像序列的视频进行编码.我想利用GPU并行性的强度并且最大限度地做到"服务器端".所以我发现NVidia有一个使用CUDA对视频进行编码的SDK,但在阅读了SDK 白皮书之后,我仍然不清楚是否可以在不离开GPU的情况下将FBO纹理作为NVCUVENC(编码器)的图像帧源发送.我相信从CPU上传图像会给编码过程带来巨大的开销,因为如果我不能直接在GPU端获取FBO纹理,这意味着我必须将其像素读取到CPU然后再将它们发送到GPU进行编码.所以我基本上有两个问题:

  1. 难道NVIDIA CODEC图书馆允许做我想要什么?

  2. 如果没有,可以使用其他GPGPU SDK,如OpenCL甚至OpenGL 4.3计算着色器吗?

有关DirectX或相关的东西其他窗口任何不能被考虑,因为我需要它Linux.Also我只用NVIDIA的显卡.

opengl cuda gpgpu opencl video-encoding

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

在OS X上使用AVFoundation进行H.264视频流传输?

基于这个堆栈溢出问题以及WWDC 2014的Apple 对视频编码和解码直接访问,我制作了一个小型Xcode项目,演示了如何使用AVFoundation解码和显示H.264流。该项目可在github 此处获得

我已将一系列1000个NALU转储到文件中,并将它们包含在项目中(nalu_000.bin ... nalu_999.bin)。

下面包括代码的有趣部分,该部分分析NALU并将其流式传输到AVSampleBufferDisplayLayer

@import AVKit;

typedef enum {
    NALUTypeSliceNoneIDR = 1,
    NALUTypeSliceIDR = 5,
    NALUTypeSPS = 7,
    NALUTypePPS = 8
} NALUType;

@interface ViewController ()

@property (nonatomic, strong, readonly) VideoView * videoView;
@property (nonatomic, strong) NSData * spsData;
@property (nonatomic, strong) NSData * ppsData;
@property (nonatomic) CMVideoFormatDescriptionRef videoFormatDescr;
@property (nonatomic) BOOL videoFormatDescriptionAvailable;

@end

@implementation ViewController

- (VideoView *)videoView { …
Run Code Online (Sandbox Code Playgroud)

macos avfoundation video-encoding video-streaming h.264

5
推荐指数
0
解决办法
2038
查看次数

OMX.qcom编码器随机崩溃

该应用程序基于Grafika的相机捕获活动(https://github.com/google/grafika/tree/master/src/com/android/grafika)。用户点击按钮以录制视频。Nexus 5x随机崩溃。下面发布了2条日志,分别说明何时可以正常工作以及什么时候不工作。请告诉我造成此崩溃的原因是什么,以及是否需要我发布代码的任何部分。

工作方式:

11-21 15:55:22.301 26556-27085/com.testvideo I/OMXClient: MuxOMX ctor
11-21 15:55:22.505 26556-27085/com.testvideo E/ACodec: [OMX.qcom.video.encoder.avc] storeMetaDataInBuffers (output) failed w/ err -1010
11-21 15:55:22.505 26556-27085/com.testvideo W/ACodec: do not know color format 0x7fa30c04 = 2141391876
11-21 15:55:22.506 26556-27085/com.testvideo W/ACodec: do not know color format 0x7f000789 = 2130708361
11-21 15:55:22.518 26556-27085/com.testvideo I/ACodec: setupAVCEncoderParameters with [profile: Baseline] [level: Level31]
11-21 15:55:22.520 26556-27085/com.testvideo I/ACodec: [OMX.qcom.video.encoder.avc] cannot encode color aspects. Ignoring.
11-21 15:55:22.520 26556-27085/com.testvideo I/ACodec: [OMX.qcom.video.encoder.avc] cannot encode HDR static metadata. Ignoring.
11-21 15:55:22.520 26556-27085/com.testvideo …
Run Code Online (Sandbox Code Playgroud)

android video-encoding mediacodec grafika

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