我不熟悉视频压缩,但目前正在使用H.264压缩残留图像的项目
我的问题更多是关于视频编码器的一般性质.据我所知(正如维基百科所解释的那样),块运动补偿编码器将当前帧划分为一些非重叠块,对于每个块,它在当前块来自的参考帧中进行检查,然后计算出它的差异.期望的块和运动补偿块,然后以某种方式对该残差进行编码.
维基百科指出:"块运动补偿的主要缺点是它会在块边界处引入不连续性(块效应).这些伪像以锐利的水平和垂直边缘的形式出现,很容易被人眼发现并产生振铃效果(用于残差帧的变换编码的傅里叶相关变换中的高频子带中的大系数.
因此,由于参考帧已经包含块伪像(因为它被编码),然后这些块伪像被移位到当前块并且计算残差,然后由边界处的块伪像创建的高频.移位块也将显示为残差中的不连续性.并且不连续性通常对压缩不利.
在压缩残差之前,运动补偿块编码器是否以某种方式处理此块伪像?因为它确切地知道块是如何移位的,所以它知道块边界的位置,并且可以在编码残差之前或期间对它们做些什么,在这个地方移除/忽略不必要的高频.如果在像H.264这样的编解码器中执行这样的事情,有人可以解释编码器如何做到这一点的主要概念,给它一些术语等等吗?编码器如何处理参考帧中的块伪像?
我想在处理视频时限制最大 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 以使用网络摄像头进行实时视频流。我使用的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
我想创建用户生成的地图和路径并将其导出到视频。在此页面上,https://uber.github.io/kepler.gl/#/demo/ukcommute,我看到它们导出到照片。是否可以从 mapboxGL 地图创建视频?
我正在建立一个cms,希望用户能够上传视频,但是我对视频上传和转换不熟悉。是否有示例或有人编码过这样的解决方案?我听说过ffmpeg,但是我不知道如何将其与asp.net集成。
作为一个简单的解决方案,我可以让我的客户上传flv文件,但随后我仍然需要从该fvl中获取屏幕截图。
谢谢
我有一项潜在的工作,需要我用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似乎是性能更高的实例。我该怎么选?
我正在寻找一种速度快,需要较少CPU能力并生成质量非常好的mp4视频的视频编码器.
输入视频可以是任何格式并由用户上传.
我所知道的只是FFMPEG库.
还有什么更好的吗?
该程序必须具有我感兴趣的批处理实用程序(exe).
如果您能分享您的知识,我将不胜感激.
谢谢
我打算编写一个应用程序,其中我需要能够对来自FBO附加纹理的给定图像序列的视频进行编码.我想利用GPU并行性的强度并且最大限度地做到"服务器端".所以我发现NVidia有一个使用CUDA对视频进行编码的SDK,但在阅读了SDK 白皮书之后,我仍然不清楚是否可以在不离开GPU的情况下将FBO纹理作为NVCUVENC(编码器)的图像帧源发送.我相信从CPU上传图像会给编码过程带来巨大的开销,因为如果我不能直接在GPU端获取FBO纹理,这意味着我必须将其像素读取到CPU然后再将它们发送到GPU进行编码.所以我基本上有两个问题:
难道NVIDIA CODEC图书馆允许做我想要什么?
如果没有,可以使用其他GPGPU SDK,如OpenCL甚至OpenGL 4.3计算着色器吗?
有关DirectX或相关的东西其他窗口任何不能被考虑,因为我需要它Linux.Also我只用NVIDIA的显卡.
基于这个堆栈溢出问题以及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) 该应用程序基于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) video-encoding ×10
ffmpeg ×4
h.264 ×2
video ×2
amazon-ec2 ×1
android ×1
asp.net ×1
avfoundation ×1
compression ×1
cuda ×1
encoding ×1
flash ×1
flv ×1
frame-rate ×1
gpgpu ×1
grafika ×1
libx264 ×1
macos ×1
mapbox ×1
mapbox-gl ×1
mediacodec ×1
mp4 ×1
opencl ×1
opengl ×1
x264 ×1