问题标签 [avcodec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
844 浏览

php - 使用 PHP 脚本运行 CLI 命令

我想使用avconv将flv文件转换为mpg ,它是使用终端连续运行的。我的问题是使用 php 脚本运行命令。我写了一个代码,但我没有得到结果。我的代码如下

我也尝试了以下代码但没有运气

0 投票
1 回答
9019 浏览

php - 如何使用 avconv 将图像转换为视频

我想从我使用以下代码的图像创建视频

但是当我尝试播放输出视频时,它显示流不包含数据

0 投票
1 回答
1186 浏览

php - 如何使用 avconv 连接一系列视频

我想连接一组视频我的数组是

我知道连接 2 个视频文件及其工作文件,我的代码是

上面的代码工作文件,我得到了结果。

我的问题是使用 php 和avconv连接超过 2 个视频

0 投票
0 回答
641 浏览

image - 使用 avconv 从图像创建视频

我想从图像创建视频,我的代码是

但我有一个错误

我该如何解决这个问题?

0 投票
1 回答
1059 浏览

ffmpeg - avcodec_decode_video2 在与 live555 一起使用时始终将 got_picture_ptr 设置为 0

我正在尝试使用 libavcodec 解码帧。我的应用程序使用 live555 从 rtsp 流中检索 rtp 数据包。由于 avcodec_decode_video 将 got_picture_ptr 设置为 0 的原因,我进行了很多搜索,但无法找到它。
谁能告诉我 avcodec_decode_video2 在内部是如何工作的?什么原因可能导致 got_picture_ptr 指针设置为零?PS:该函数确实读取字节,即返回值始终是正数,而不是-1。我在这里很难过,任何帮助将不胜感激。我没有引用任何代码,因为使用 avcodec_decode_video2 解码的代码相当通用,我的代码没有什么特别之处。(我之前使用 libavcodec 解码了 rtsp 流,只是没有使用 live555)

0 投票
3 回答
8107 浏览

android - avcodec_find_encoder(AV_CODEC_ID_H264) 返回 null

我正在构建一个 android 应用程序,它将对从相机预览捕获的图像进行编码,然后对其进行解码。我正在使用 ffmpeg 库进行编码和解码。要使用 x264 构建静态库,我使用了本教程。http://dl.dropbox.com/u/22605641/ffmpeg_android/main.html。作为 ffmpeg 的源代码,如果我使用从教程中给出的链接下载的源代码,我可以构建它,但如果我使用从 git clone git://source.ffmpeg.org/ffmpeg 下载的源代码,则无法构建库。 git ffmpeg。我在 ubuntu 中构建了库,并在 Eclipse 的 Windows 7 中使用它。由于我只需要 h264 编码器和解码器,因此我对 ffmpeg 使用了以下代码,对教程稍作修改。

在构建库之后,我已经能够构建 android ndk。我的 JNI 代码的一小部分在这里。

当我运行调用 initencoder() 的 java 源代码时,我得到 -1 作为返回值,并且 logcat 打印“未找到”。这意味着 avcodec_find_encoder() 返回 null 并且如果条件正常。我不知道怎么了。为什么这个函数返回null?我进行了很多搜索,但没有找到任何可以引导我走向正确方向的解决方案。有人说要使用 avcodec_init()。但 ndk-build 命令失败并显示错误,说明未定义对 'avcodec_init()' 的引用。我已经开始构建库,因为我认为我可能从第一阶段就做错了。我在图书馆建设中是否犯了任何错误,比如没有启用我应该做的事情?请在这里帮助我。这对我来说有点紧迫。

0 投票
0 回答
6580 浏览

ffmpeg - 如何用从 CMSampleBufferRef (AVFoundation) 获得的数据填充音频 AVFrame (ffmpeg)?

我正在编写将实时音频和视频从网络摄像头流式传输到 rtmp-server 的程序。我在 MacOS X 10.8 中工作,所以我使用 AVFoundation 框架从输入设备获取音频和视频帧。这个框架进入委托:

-(void) captureOutput:(AVCaptureOutput*)captureOutput didOutputSampleBuffer: (CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection*)connection ,

其中sampleBuffer包含音频或视频数据。

当我在 中接收音频数据时sampleBuffer,我正在尝试将此数据转换为并使用 libavcodecAVFrame进行编码:AVFrame

问题是,当我得到如此形成的帧时,我可以听到想要的声音,但它会变慢并且不连续(好像每个数据帧之后都会出现相同的静音帧)。CMSampleBuffer从到的转换似乎有问题 AVFrame,因为来自相同样本缓冲区的 AVFoundation 创建的麦克风的预览正常播放。

我会很感激你的帮助。

UPD:创建和初始化 AVCodceContext 结构

0 投票
2 回答
1819 浏览

visual-c++ - 无法在 Visual Studio 2012 中链接 FFMpeg 库

我一直在尝试将 FFMPEG 静态库链接到 c++ 环境中的 Visual Studio 2012。但我收到以下错误。

  • 错误 1 ​​错误 LNK1104: 无法打开文件 'avcodec.lib' C:\Users\username\Documents\Visual Studio 2012\Projects\ConsoleApplication5\ConsoleApplication5\LINK ConsoleApplication5

我的 lib 文件位于 C:\Users\username\Documents\Visual Studio 2012\Projects\ConsoleApplication5\ConsoleApplication5\ExtLib\lib

编译似乎没问题。命令行是

  • /Yu"stdafx.h" /GS /W3 /Zc:wchar_t /I"C:\Users\username\Documents\Visual Studio 2012\Projects\ConsoleApplication5\ConsoleApplication5\ExtLib\include" /Zi /Gm /Od /sdl / fd"x64\Debug\vc110.pdb" /fp:precise /D "WIN32" /D "_D​​EBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /MTd /Fa"x64\Debug\" /EHsc /nologo /Fo"x64\Debug\" /Fp"x64\Debug\ConsoleApplication5.pch"

主要问题似乎是在链接阶段,我无法让 VS2012 找到我的 ffmpeg .lib 文件

链接器命令行如下:

  • /OUT:"C:\Users\username\Documents\Visual Studio 2012\Projects\ConsoleApplication5\x64\Debug\ConsoleApplication5.exe" /MANIFEST /NXCOMPAT /PDB:"C:\Users\username\Documents\Visual Studio 2012\ Projects\ConsoleApplication5\x64\Debug\ConsoleApplication5.pdb" /DYNAMICBASE "avcodec.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" " shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X64 /OPT:NOREF /INCREMENTAL /PGD:"C:\Users\用户名\Documents\Visual Studio 2012\Projects\ConsoleApplication5\x64\Debug\ConsoleApplication5.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"x64\Debug\ConsoleApplication5.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"/LIBPATH:C:\Users\username\Documents\Visual Studio 2012\Projects\ConsoleApplication5\ConsoleApplication5\ExtLib \lib" /TLBID:1

我无法弄清楚为什么链接器无法找到我的 ffmpeg lib 文件,即使它们物理上位于 /LIBPATH 区域 - c:...\vs12...\ExtLib\lib

0 投票
1 回答
91 浏览

c++ - 什么是损坏的 MPEG 流?

我正在阅读avcodec 文档,并试图了解 MPEG 流被损坏意味着什么。它提到:

输入缓冲区 buf 的末尾应设置为 0,以确保损坏的 MPEG 流不会发生过度读取。

那么如果输入缓冲区的末尾没有设置为 0 会发生什么?这会是引入腐败的潜在方式吗?

0 投票
0 回答
1253 浏览

rgb - 使用 libavcodec 从 rgb24 编码到 mpeg4 和从 mpeg4 到 rgb24 解码

问题:

我正在从网络摄像头接收 rgb24 图像,并使用 libavcodec 将它们编码为 mpeg4。我无法将它们解码回 rgb24。avcodec_decode_video2 返回它处理了所有输入,但 avcodec_decode_video2 的第三个参数始终返回 0。

什么有效:

在调用 avcodec_encode_video2 之前,通过 sws_scale 将 rgb24 图像转换为 yuv420p 格式。这可以正常工作,因为我可以从 sws_scale 获取结果并将其成功转换回 rgb24。我可以在屏幕上查看结果,这就是我现在这部分的工作方式。

描述:

对于从 avcodec_encode_video2 返回的每个图像,我正在调用另一个函数,将其解码回 rgb24。这个场景是为了测试目的而设置的,以确保我可以成功编码/解码。下面总结了代码中发生的事情:

我想知道在调用解码函数之前我还需要做些什么吗???

作为参考,我提供了下面的实际代码,其中包括以下四个函数:videoEncodeInit、videoEncode、videoDecodeInit、videoDecode。之后,我发布了函数的调用方式。

下面是调用 init 函数的方式:

视频编码初始化:

视频解码初始化:

视频编码: