gpt4 book ai didi

ffmpeg - 使用 ffmpeg,每 30 秒将 wav 文件从 ip 流写入 file.temp,然后将名称更改为 timestamp.wav

转载 作者:行者123 更新时间:2023-12-04 23:14:31 25 4
gpt4 key购买 nike

我正在使用 ffmpeg 记录 IP 流并每 30 秒写入一次 wav 文件。

这是我的 bash 脚本代码:

#!/bin/bash
function start_ffmpeg_stream ()
{
address=$1 #This is IP stream address
ffmpeg_option=$2 # "?overrun_nonfatal=1&fifo_size=250000"
folder_name=$3 #folderName
channel_number=$4 #i
#local pid
ffmpeg -loglevel 8 -thread_queue_size 1500 -i "$address$ffmpeg_option" -c copy\
-vn -f segment -segment_time 30 -ar 8000 -acodec pcm_s32le -ac 1 -strftime 1 /"$folder_name"/"X$channel_number""_""%s.wav"&
pid=$!
echo "$Start ffmpeg, pid is - $pid"
__="$pid"
}
ffmpegOptions="?overrun_nonfatal=1&fifo_size=250000"
folderName="/wav_files"
start_ffmpeg_stream "udp://224.10.0.1" "$ffmpegOptions" "$folderName" "1"

现在 wav 文件名就像“X000001_unix_time_stamp.wav”。

我想在写入时间写入文件名,例如“X000001_unix_time_stamp.temp”

当 30 秒完成并且 FFmpeg 完成编写这 30 秒时,我希望 FFmpeg 将名称更改为“X000001_unix_time_stamp.wav”

并在接下来的 30 秒内继续写作。

我想要的唯一更改是,当 FFmpeg 将其写入临时名称并在 FFmpeg 完成写入后更改名称。

当我下载一个文件时似乎是这种情况,所以直到下载未完成文件有一个临时名称并且当它完成名称更改为 const 名称。

最佳答案

This是您正在寻找的,特别是 -segment_list标志写入一个包含所有已写入和关闭的段路径的文件。您也可以使用 -segment_list_size 限制此文件大小。标志,这样你就不会得到一个巨大的日志文件。解析此文件以对已完成的文件执行您想要的操作

关于ffmpeg - 使用 ffmpeg,每 30 秒将 wav 文件从 ip 流写入 file.temp,然后将名称更改为 timestamp.wav,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51402368/

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