11 ffmpeg
我正在尝试使用ffmpeg来解码音频数据.虽然它可以从文件加载,但我想避免使用文件,因为这样做意味着我必须使用临时文件.相反,我想使用stdin管道数据(我以前加载过).
这可能吗?
例如,
(它应该与ffprobe和ffplay一起使用)
Cir*_*四事件 12
-
是相同的pipe:
我找不到它的文档记录,而且我没有耐心检查源代码,但根据我对 ffmpeg 4.2.4 的测试,它-
似乎完全相同,您通常在其他 Linux 中期望的在哪里管道协议文档中提到的实用程序:pipe:
pipe:
-
如果未指定 number,则默认情况下将使用 stdout 文件描述符进行写入,使用 stdin 进行读取。
例如,您可以重写/sf/answers/3213188401/中的命令
ffmpeg -f mp3 -i pipe: -c:a pcm_s16le -f s16le pipe: < file.mp3
Run Code Online (Sandbox Code Playgroud)
更简单一点:
ffmpeg -f mp3 -i - -c:a pcm_s16le -f s16le - < file.mp3
Run Code Online (Sandbox Code Playgroud)
相关:“破折号”是什么意思 - 作为 ffmpeg 输出文件名
ffmpeg有一个特殊的管道标志,指示程序使用stdin。请注意,几乎总是需要明确定义输入格式。
示例(输出为PCM有符号16位little-endian格式):
cat file.mp3 | ffmpeg -f mp3 -i pipe: -c:a pcm_s16le -f s16le pipe:
Run Code Online (Sandbox Code Playgroud)
我没有足够的声誉来添加评论,所以...
巴尔先生的例子
ffmpeg -i file.mp3 -c:a pcm_s16le -f s16le pipe: | ffmpeg -f mp3 -i pipe: -c:a pcm_s16le -f s16le encoded.mp3
Run Code Online (Sandbox Code Playgroud)
应该读,
ffmpeg -i file.mp3 -c:a pcm_s16le -f s16le pipe: | ffmpeg -f s16le -i pipe: -f mp3 encoded.mp3
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14902 次 |
最近记录: |