gpt4 book ai didi

nginx - 使用 nginx-rtmp-module 将 rtmp 流保存到 mp4 而不是 flv

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

我正在尝试将传入的 rtmp 流保存在我的服务器上作为 mp4 文件。我正在使用 nginx-rtmp模块并从 flv 更改容器至mp4exec_record_done指示。这是使用 ffmpeg 完成的,如下所示

ffmpeg -i input.flv output.mp4
我正在发送 h264 视频流和 aac 音频流(在 flv 容器中),以便即使与 mp4 也保持兼容
我想知道是否可以将传入的流直接保存为 mp4 并避免在每个 session 结束时进行转码

I am guessing this will help avoid the abrupt CPU spikes that I see when a recording is done

nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
worker_connections 1024;
}

rtmp {
server {
listen 1935;
chunk_size 4096;
allow publish all;
allow play all;

application live {
live on;

record all;
record_suffix .flv;
record_path /tmp/videos/;
record_unique on;

exec_record_done ffmpeg -y -i $path /home/ubuntu/videos/$basename.mp4;
}
}
}

我认为这很简单,因为底层流保持不变。任何帮助表示赞赏:)

最佳答案

这是因为你的 FFmpeg 命令不正确,试试这个:

exec_record_done ffmpeg -i $path -c copy /home/ubuntu/videos/$basename.mp4;
记得添加 -c copy告诉 FFmpeg 将 FLV 转换为 MP4 而无需转码。
另一种解决方案是自己复制 HLS 文件并将 HLS 转换为 MP4。

关于nginx - 使用 nginx-rtmp-module 将 rtmp 流保存到 mp4 而不是 flv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70967704/

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