gpt4 book ai didi

ffmpeg - 如何让 ffmpeg 编码一次并复用两次,以及选项?

转载 作者:行者123 更新时间:2023-12-04 23:13:16 30 4
gpt4 key购买 nike

我已阅读 -f tee ,但我不知道如何做我想做的事。

我想读入一个音频文件,编码一次,然后转储一个 mp3 文件以及 mp3 HLS 段。换句话说,单独的命令将是:

$ cat file.wav | ffmpeg -y -i pipe:0 -c:a libmp3lame -q:a 0 -map 0:0 -f segment -segment_time 10 -segment_list /tmp/segments.m3u8 -segment_format mpegts -vn /tmp/segment_%03d.ts


$ cat file.wav | ffmpeg -y -i pipe:0 -c:a libmp3lame -q:a 1 /tmp/working.mp3

(注意第二个命令中不同的 qscale 值)

我不太清楚如何对每个输出应用不同的命令行选项。

编辑:我更接近解决方案,我认为:
$ ffmpeg -y -i pipe:0 -c:a libmp3lame -map 0:0 -f tee -vn '[q\:a=1]/tmp/working.mp3|[q\:a=0:f=segment:segment_time=10:segment_list=/tmp/segments.m3u8:segment_format=mpegts]/tmp/segment_%03d.ts'

但是通过 q\:a 逃逸不工作:
[tee @ 0x7fe897815600] No option found near "q:a=1]/tmp/working.mp3"
[tee @ 0x7fe897815600] Slave muxer #0 failed: Invalid argument, continuing with 1/2 slaves.
[tee @ 0x7fe897815600] No option found near "q:a=0:f=segment:segment_time=10:segment_list=/tmp/segments.m3u8:segment_format=mpegts]/tmp/segment_%03d.ts"
[tee @ 0x7fe897815600] All tee outputs failed.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:0 --
Conversion failed!

最佳答案

如果你编码一次,你不能有两个 q:a 值——只有一个编码实例。您可以简单地编码两次并在一个命令中复用两个输出。
$ cat file.wav | ffmpeg -y -i pipe:0 -c:a libmp3lame -q:a 0 -map 0:0 -f segment -segment_time 10 -segment_list /tmp/segments.m3u8 -segment_format mpegts -vn /tmp/segment_%03d.ts -c:a libmp3lame -q:a 1 /tmp/working.mp3

关于ffmpeg - 如何让 ffmpeg 编码一次并复用两次,以及选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58841760/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com