问题标签 [ffmpeg]
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.
command-line - 将图像序列转换为具有透明度的视频
我有一个看起来应该是一个非常简单的问题,但事实证明它比我预期的要困难得多。这是问题:
我有一个相当大的图像序列,由编号的帧组成(从 Maya 输出,值得一提)。这些图像目前是 Targa (.tga) 格式,但如果这很重要,我可以将它们转换为 PNG 或其他任意格式。重要的是,他们有一个 Alpha 通道。
我想做的是以编程方式将它们变成视频剪辑。格式并不重要,但它必须是无损的并且具有 Alpha 通道。Quicktime 容器中的未压缩视频可能是理想的。
我最初的想法是 ffmpeg,但是在浪费了一天的大部分时间之后,它似乎根本不支持 alpha 通道。要么我遗漏了一些东西,要么底层的 libavcodec 没有做到这一点。
那么,这里的正确方法是什么?像 ffmpeg 这样的命令行工具会很好,但是任何在 Windows 上运行并且可以从脚本调用的解决方案都可以。
注意:在您的视频中包含一个 alpha 通道实际上并不少见,如果您想将它合成到另一个视频剪辑或静止图像的顶部,它非常有用。据我所知,未压缩视频、Quicktime Animation 编解码器和 Sorenson Video 3 编解码器都支持透明,而且我听说 H.264 也支持。我们真正谈论的是 32 位色深,它得到了相当广泛的支持;Quicktime .mov 文件和 Windowss .avi 文件都可以处理它,而且可能更多。
Quicktime Pro 非常乐意将图像序列转换为 32 位 .mov 文件。点击导出,将颜色深度更改为“Millions of Colors+”,选择动画编解码器,将质量提高到 100,就可以了 - 无损压缩视频,带有 alpha 通道,它几乎可以在编解码器后的任何地方播放自 1.0 版以来一直是 Quicktime 的一部分。问题是,Quicktime Pro 没有任何类型的命令行界面(至少在 Windows 上)。ffmpeg 支持使用 Quicktime Animation 编解码器(它称为 qtrle)进行编码,但它仅支持 24 位的位深度。
问题在于找不到支持 Alpha 通道的视频格式。Quicktime Animation 将是理想的,但即使是未压缩的视频也应该可以工作。问题是找到一个支持它的工具。
linux - 如何从 linux 命令行获取视频文件的分辨率(宽度和高度)?
我一直在研究 mplayer/mencoder 和 ffmpeg 文档,但似乎什么都想不出来。我对输出格式并不是特别挑剔,因为我可以使用正则表达式将其提取出来,我似乎一开始就无法获取数据。
image - FFmpeg 图像到视频和流媒体
我有一个实时生成 JPEG 图像的 C# 程序,我需要(连续)从图像中生成视频并流式传输(也是实时的)。
我已经使用 ffmpeg 对输入视频源进行转码并将其流式传输,ffmpeg 是否没有选项可以将输入作为一组图像(始终生成)并从中制作视频?
干杯
c++ - 带有网络摄像机的 OpenCV
我在 Windows 下使用 openCV 1.1pre1。我有一个网络摄像机,我需要从 openCV 抓取帧。该摄像机可以通过 RTSP 流式传输标准 mpeg4 流或通过 http 传输 mjpeg。我已经看到很多线程都在谈论将 ffmpeg 与 openCV 一起使用,但我无法使其工作。
如何使用 openCV 从 IP 摄像机中抓取帧?
谢谢
安德烈亚
c# - 在 C# 和 Ffmpeg 之间创建管道
我有一个 C# 程序,可以创建视频并将其实时保存到磁盘。我不想这样做,而是希望它直接在与 ffmpeg 连接的管道中编写它......
将视频保存在磁盘中的功能,我无法控制,接收到一个 IntPtr 并引用该文件。
所以,我需要用ffmpeg创建一个管道或类似的东西,获取一个指向它的指针,并在函数中使用该指针,以便它将文件流式传输到ffmpeg而不是磁盘......
ffmpeg - ffmpeg可以显示进度条吗?
我正在使用 ffmpeg 将 .avi 文件转换为 .flv 文件。由于转换文件需要很长时间,我想显示一个进度条。有人可以指导我如何去做。
我知道 ffmpeg 必须以某种方式在文本文件中输出进度,我必须使用 ajax 调用来读取它。但是如何让 ffmpeg 将进度输出到文本文件?
ruby - 无法在 Ruby 中将 ffmpeg 作为子进程运行
我正在尝试以下代码,通过将 ffmpeg 实用程序作为子进程运行并获取其输出并解析它来确定视频分辨率:
...但是 ffmpeg 输出仍然连接到 stdout 并且 ffmepgIO.readlines 是空的。ffmpeg 实用程序是否需要一些特殊处理?还是有其他方法可以获得 ffmpeg 输出?我在 WinXP 和 Fedora Linux 下测试了这段代码——结果是一样的。
perl - 我可以在没有系统调用的情况下从 Perl 脚本中使用 ffmpeg 吗?
我想将 mp3 转换为较低的比特率,以及可能使用 Perl 将视频转换为 mp3。我查看了 ffmpeg 模块,但它似乎不支持转换文件,我看到的唯一示例是从视频流中抓取图片。有没有办法在 Perl 中做到这一点而不使用 system() 来调用 ffmpeg?
iphone - 流式传输“代理”转换视频格式
这与我的另一个问题有关
在这里我想问一下理论上(根据视频文件格式和编解码器等)是否可能出现这种情况:
1) iPhone客户端有flv格式的视频参考。只需在 Safari 中单击此类链接,它就会发送 http 请求以转换像http://convproxy.com?source=url_of_original_video.flv这样的“代理”
2)转换代理开始下载该flv文件并将其即时转换为mp4(iphone可以理解),将转换后的部分作为http响应返回,因此iPhone可以在整个flv下载和转换之前立即开始播放。
我在玩 ffmpeg 试图做这样的事情,它确实转换 flv 并生成 mp4 文件,但是在转换完成或 ffmpeg 停止之前无法播放 mp4 文件。如果我只是杀死 ffmpeg 进程,则无法播放 mp4 文件。如果我让它完成或按 ctrl-c 停止它,则可以播放下载和转换的部分。似乎 ffmpeg 在收到停止信号后做了一些工作。这是 mp4 格式的必要部分还是可以以不同的方式完成?我看到 iPhone 可以通过在整个文件下载到它之前开始播放来流式传输视频,所以总的来说这对我来说似乎是可能的情况。
我简短地说,我可以将flv文件转换为mp4文件,问题是我是否可以将flv流转换为mp4流。
php - 检测 FFmpeg 安装和版本
我正在编写一个 PHP 脚本,可以即时将上传的视频文件转换为 FLV,但我只希望它在用户在服务器上安装了 FFmpeg 时运行该部分脚本。
有没有办法提前检测到这一点?我可以运行一个 FFmpeg 命令并测试它是否返回“找不到命令”?