首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >管道输入到ffmpeg stdin

管道输入到ffmpeg stdin
EN

Stack Overflow用户
提问于 2017-08-26 20:52:27
回答 4查看 60.5K关注 0票数 27

我试图使用ffmpeg来解码音频数据。虽然它可以从文件中加载,但我希望避免使用文件,因为这样做意味着我必须使用临时文件。相反,我想使用stdin输入数据(我以前已经加载过)。

这个是可能的吗?

例如,

  1. 手动加载mp3文件
  2. 将其导入到ffmpeg生成的进程中。
  3. 获得原始输出

(它也应该与ff探头和ffplay一起工作)

EN

回答 4

Stack Overflow用户

发布于 2017-08-27 07:35:59

ffmpeg有一个特殊的管道标志,指示程序使用stdin。注意,几乎总是需要显式地定义输入格式。

示例(输出采用PCM签名的16位小终端格式):

代码语言:javascript
运行
复制
cat file.mp3 | ffmpeg -f mp3 -i pipe: -c:a pcm_s16le -f s16le pipe:

管道文档是这里

支持的音频类型是这里

票数 31
EN

Stack Overflow用户

发布于 2020-12-08 21:48:56

- pipe:相同

我找不到文档化的地方,我也没有耐心检查源代码,但根据我使用ffmpeg 4.2.4进行的测试,-似乎与pipe:完全一样,在其他在管道协议的文档中实用程序中,pipe:会执行您通常期望的-功能。

如果没有指定数字,默认情况下,stdout文件描述符将用于写入,stdin用于读取。

例如,您可以从https://stackoverflow.com/a/45902691/895245重写命令

代码语言:javascript
运行
复制
ffmpeg -f mp3 -i pipe: -c:a pcm_s16le -f s16le pipe: < file.mp3

更简单地说是:

代码语言:javascript
运行
复制
ffmpeg -f mp3 -i - -c:a pcm_s16le -f s16le - < file.mp3

相关:什么是“破折号”-作为ffmpeg输出文件名的意思?

票数 7
EN

Stack Overflow用户

发布于 2020-07-05 04:50:52

我没有足够的声誉来发表评论,所以.

巴尔先生的例子

代码语言:javascript
运行
复制
ffmpeg -i file.mp3  -c:a pcm_s16le -f s16le pipe: | ffmpeg -f mp3 -i pipe: -c:a pcm_s16le -f s16le encoded.mp3

应该读一下,

代码语言:javascript
运行
复制
ffmpeg -i file.mp3  -c:a pcm_s16le -f s16le pipe: | ffmpeg -f s16le -i pipe: -f mp3 encoded.mp3
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45899585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档