Questions tagged «h.264»

20
如何使用FFmpeg连接两个MP4文件?
我正在尝试使用ffmpeg连接两个mp4文件。我需要这是一个自动过程,因此为什么选择ffmpeg。我将两个文件转换为.ts文件,然后将它们串联,然后尝试对该简明的.ts文件进行编码。这些文件是h264和aac编码的,我希望尽可能保持质量不变或接近原始质量。 ffmpeg -i part1.mp4 -vcodec copy -vbsf h264_mp4toannexb -acodec copy part1.ts ffmpeg -i part2.mp4 -vcodec copy -vbsf h264_mp4toannexb -acodec copy part2.ts cat part1.ts part2.ts > parts.ts ffmpeg -y -i parts.ts -acodec copy -ar 44100 -ab 96k -coder ac -vbsf h264_mp4toannexb parts.mp4 不幸的是,我在编码过程中从ffmpeg返回了以下错误消息: [h264 @ 0x1012600]sps_id out of range [h264 @ …
441 ffmpeg  h.264  mp4 

7
FFMPEG(libx264)“高度不能被2整除”
我正在尝试使用libx264编解码器使用FFMPEG从一组帧中编码.mp4视频。 这是我正在运行的命令: /usr/local/bin/ffmpeg -r 24 -i frame_%05d.jpg -vcodec libx264 -y -an video.mp4 有时会出现以下错误: [libx264 @ 0xa3b85a0] height not divisible by 2 (520x369) 经过一番搜索后,问题似乎与缩放算法有关,可以通过添加-vf参数来解决。 但是,就我而言,我不想进行任何缩放。理想情况下,我希望尺寸与框架完全相同。有什么建议吗?h264是否执行某种长宽比?
188 ffmpeg  h.264  libx264 

1
H.264流的序列/图片参数集的可能位置
我正在研究H.264解码器,我想知道在哪里可以找到SPS和PPS。我的参考文献告诉我,这些是在H.264-Stream中编码的NAL单元,但是当我使用IsoViewer查看example-MP4-File时,它说SPS和PPS在avcC框中。 这是如何工作的?如何查找.mkv文件或其他H.264容器? 提前致谢!
82 parameters  set  mp4  h.264  mkv 

5
如何使用VideoToolbox解压缩H.264视频流
我在弄清楚如何使用Apple的硬件加速视频框架解压缩H.264视频流时遇到很多麻烦。几个星期后,我发现了这个问题,并想分享一个广泛的例子,因为我找不到一个。 我的目标是给出在WWDC '14会话513中引入的Video Toolbox的详尽指导性示例。我的代码无法编译或运行,因为它需要与基本的H.264流(例如从文件读取的视频或从在线流传输的视频)集成在一起,并且需要根据具体情况进行调整。 我应该提到,除了我在研究该主题时学到的知识以外,我对视频编码/解码的经验很少。我不了解有关视频格式,参数结构等的所有详细信息,所以我只包含了我认为您需要知道的内容。 我正在使用XCode 6.2,并已部署到运行iOS 8.1和8.2的iOS设备。

2
提供少量输入样本后,英特尔图形硬件H264 MFT ProcessInput调用失败,在Nvidia硬件MFT上也可以正常工作
我正在使用DesktopDuplication API捕获桌面,并将示例从RGBA转换为GPU中的NV12,并将其提供给MediaFoundation硬件H264 MFT。这在Nvidia图形以及软件编码器上都可以正常工作,但是在只有Intel图形硬件MFT可用时失败。如果我退回到Software MFT,该代码在同一台Intel图形计算机上也可以正常工作。我还确保了编码实际上是在Nvidia图形计算机上的硬件中完成的。 在Intel图形上,MFT返回MEError(“未指定错误”),仅在馈入第一个样本后才发生,随后对ProcessInput的调用(当事件生成器触发METransformNeedInput时)返回“被调用方当前不接受进一步的输入”。MFT很少会在返回这些错误之前消耗更多的样本。这种行为令人困惑,仅当事件生成器通过IMFAsyncCallback异步触发METransformNeedInput时,我才提供示例,并且还应检查提供示例后是否立即触发METransformHaveOutput。当相同的异步逻辑与Nvidia硬件MFT和Microsoft软件编码器一起正常工作时,这真让我感到困惑。 也有类似的 英特尔论坛本身未解决问题。我的代码类似于intel线程中提到的代码,除了我还将d3d设备管理器设置为如下所示的编码器这一事实。 并且,还有其他三个堆栈溢出线程报告了类似的问题,但没有给出解决方案(MFTransform编码器-> ProcessInput返回E_FAIL& 如何从D11纹理为Intel MFT编码器创建IMFSample&异步MFT没有发送MFTransformHaveOutput事件(Intel硬件MJPEG解码器MFT))。我尝试了所有可能的选择,对此没有任何改进。 颜色转换器代码取自intel media sdk示例。我也在这里上传了完整的代码。 设置d3d管理器的方法: void SetD3dManager() { HRESULT hr = S_OK; if (!deviceManager) { // Create device manager hr = MFCreateDXGIDeviceManager(&resetToken, &deviceManager); } if (SUCCEEDED(hr)) { if (!pD3dDevice) { pD3dDevice = GetDeviceDirect3D(0); } } if (pD3dDevice) { // NOTE: …

3
在ffplay中获得绿屏:使用Live555通过RTP流将桌面(DirectX表面)作为H264视频流
我正在尝试使用Windows10上的Live555和Windows Media Foundation的硬件编码器通过RTP流将桌面(NV12格式的DirectX表面)流化为H264视频,并期望它可以由ffplay(ffmpeg 4.2)呈现。但是只有如下所示的绿屏, 我提到了MFWebCamToRTP mediafoundation-sample和使用硬件MFT编码DirectX表面,以实现live555的FramedSource并将输入源更改为DirectX表面而不是webCam。 这是我的Live555的doGetNextFrame回调实现的摘录,以从directX表面提供输入样本: virtual void doGetNextFrame() { if (!_isInitialised) { if (!initialise()) { printf("Video device initialisation failed, stopping."); return; } else { _isInitialised = true; } } //if (!isCurrentlyAwaitingData()) return; DWORD processOutputStatus = 0; HRESULT mftProcessOutput = S_OK; MFT_OUTPUT_STREAM_INFO StreamInfo; IMFMediaBuffer *pBuffer = NULL; IMFSample *mftOutSample …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.