gpt4 book ai didi

ffmpeg 操作不允许在 rtmp 上使用

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

我正在尝试使用 ffmpeg 制作网络 radio 。我有一个装满 mp3 的文件夹,并且有一个 5sec 的 mp4,我想在无限循环中使用它。所以这是我想出的在 YouTube 上流式传输的代码

#! /bin/bash

VBR="1500k"
FPS="30"
QUAL="ultrafast"
YOUTUBE_URL=" rtmp://a.rtmp.youtube.com/live2"
YOUTUBE_KEY="YOUTUBE_KEY_HERE"
VIDEO_SOURCE="output.mp4"
AUDIO_ENCODER="aac"

ffmpeg \
-stream_loop -1 \
-re \
-i "$VIDEO_SOURCE" \
-thread_queue_size 512 \
-stream_loop -1 \
-re \
-f concat -safe 0 -i audio.txt \
-c:v libx264 -preset $QUAL -r $FPS -g $(($FPS *2)) -b:v $VBR -bufsize 3000k -maxrate $VBR \
-c:a $AUDIO_ENCODER -ar 44100 -b:a 128k -pix_fmt yuv420p \
-f flv -flvflags no_duration_filesize $YOUTUBE_URL/$YOUTUBE_KEY
问题是我收到一条错误消息 operation not permitted这是错误日志
Error while filtering: Operation not permittede=00:00:03.73 bitrate=1369.7kbits/s speed=0.854x
frame= 46 fps=9.4 q=16.0 Lsize= 742kB time=00:00:04.50 bitrate=1350.0kbits/s speed=0.921x
video:668kB audio:70kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.622114%
[libx264 @ 0x5584c6bcf620] frame I:1 Avg QP:37.00 size: 50802
[libx264 @ 0x5584c6bcf620] frame P:45 Avg QP:23.92 size: 14046
[libx264 @ 0x5584c6bcf620] mb I I16..4: 100.0% 0.0% 0.0%
[libx264 @ 0x5584c6bcf620] mb P I16..4: 4.3% 0.0% 0.0% P16..4: 17.9% 0.0% 0.0% 0.0% 0.0% skip:77.8%
[libx264 @ 0x5584c6bcf620] coded y,uvDC,uvAC intra: 30.5% 41.6% 16.6% inter: 7.3% 10.1% 1.9%
[libx264 @ 0x5584c6bcf620] i16 v,h,dc,p: 44% 43% 8% 5%
[libx264 @ 0x5584c6bcf620] i8c dc,h,v,p: 32% 40% 24% 5%
[libx264 @ 0x5584c6bcf620] kb/s:1187.63
[aac @ 0x5584c6bd2f20] Qavg: 320.800
我认为这个错误是由于我循环播放的视频太短和 -stream_loop -1 根据 super 用户和 stackoverflow 上的一些人的说法,标志似乎有问题。
有没有其他方法可以解决这个问题

最佳答案

好的,我找到了解决方案。您可以使用电影滤镜。它有一个循环。您可以提供要循环作为输入的相同文件,并将电影过滤器放入其中,然后将其链接到 concat
这是修改后的代码,这可能有助于理解

#! /bin/bash

VBR="1500k"
FPS="30"
QUAL="ultrafast"
YOUTUBE_URL=" rtmp://a.rtmp.youtube.com/live2"
YOUTUBE_KEY="YOUTUBE_KEY_HERE"
VIDEO_SOURCE="output.mp4"
AUDIO_ENCODER="aac"

ffmpeg \
-stream_loop -1 \
-re \
-filter_complex movie=/root/LiveStreamRadio/media/output.mp4:loop=0,setpts=N/FRAME_RATE/TB \
-i "$VIDEO_SOURCE" \
-thread_queue_size 512 \
-stream_loop -1 \
-re \
-f concat -safe 0 -i audio.txt \
-c:v libx264 -preset $QUAL -r $FPS -g $(($FPS *2)) -b:v $VBR -bufsize 3000k -maxrate $VBR \
-c:a $AUDIO_ENCODER -ar 44100 -b:a 128k -pix_fmt yuv420p \
-f flv -flvflags no_duration_filesize $YOUTUBE_URL/$YOUTUBE_KEY
看这个部分

-filter_complex movie=/root/LiveStreamRadio/media/output.mp4:loop=0,setpts=N/FRAME_RATE/TB-i "$VIDEO_SOURCE"

关于ffmpeg 操作不允许在 rtmp 上使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65863337/

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