问题标签 [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.
php - 使用 PHP 脚本运行 CLI 命令
我想使用avconv将flv文件转换为mpg ,它是使用终端连续运行的。我的问题是使用 php 脚本运行命令。我写了一个代码,但我没有得到结果。我的代码如下
我也尝试了以下代码但没有运气
php - 如何使用 avconv 将图像转换为视频
我想从我使用以下代码的图像创建视频
但是当我尝试播放输出视频时,它显示流不包含数据
php - 如何使用 avconv 连接一系列视频
我想连接一组视频我的数组是
我知道连接 2 个视频文件及其工作文件,我的代码是
上面的代码工作文件,我得到了结果。
我的问题是使用 php 和avconv连接超过 2 个视频
image - 使用 avconv 从图像创建视频
我想从图像创建视频,我的代码是
但我有一个错误
我该如何解决这个问题?
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)
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()' 的引用。我已经开始构建库,因为我认为我可能从第一阶段就做错了。我在图书馆建设中是否犯了任何错误,比如没有启用我应该做的事情?请在这里帮助我。这对我来说有点紧迫。
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 结构
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 "_DEBUG" /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
c++ - 什么是损坏的 MPEG 流?
我正在阅读avcodec 文档,并试图了解 MPEG 流被损坏意味着什么。它提到:
输入缓冲区 buf 的末尾应设置为 0,以确保损坏的 MPEG 流不会发生过度读取。
那么如果输入缓冲区的末尾没有设置为 0 会发生什么?这会是引入腐败的潜在方式吗?
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 函数的方式:
视频编码初始化:
视频解码初始化:
视频编码: