- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我之前打开的主题中:
How to make FFmpeg automatically inject mp3 audio tracks in the single cycled muted video
我从@llogan 那里得到了详细的解释,如何在 youtube 上播放循环的短静音视频,自动在其中注入(inject)音轨而不中断翻译。
我计划增强流程,我面临的下一个问题是如何动态地将附加文本添加到广播中。
先决条件:
ffmpeg -re -fflags +genpts -stream_loop -1 -i video.mp4 -re -f concat-i input.txt -map 0:v -map 1:a -c:v libx264 -tune stillimage -vf format=yuv420p -c:a copy -g 20 -b:v 2000k -maxrate 2000k -bufsize8000k -f flv rtmp://a.rtmp.youtube.com/live2/my-key
最佳答案
这是一个相当广泛的问题,我没有完整的解决方案。但我可以提供包含几个命令的部分答案,您可以使用这些命令来帮助实现解决方案。
按需更新视频文本
见 Can you insert text from a file in real time with ffmpeg streaming?
获取标题和艺术家元数据
使用 ffprobe
:
ffprobe -v error -show_entries format_tags=title -of default=nw=1:nk=1 input.mp3
ffprobe -v error -show_entries format_tags=artist -of default=nw=1:nk=1 input.mp3
或组合:
format_tags=title,artist
(请注意,
title
将首先显示,然后是
artist
,无论命令中的顺序如何)。
textfile
中引用的文件,如上面的
更新视频点播文本所示。
audio=input.mp3; ffmpeg -stream_loop -1 -i video.mp4 -i "$audio" -filter_complex "[0:v]scale=1280:720:force_original_aspect_ratio=increase,crop=1280:720,setsar=1,fps=25,drawtext=text='$(ffprobe -v error -show_entries format_tags=title,artist -of default=nw=1:nk=1 $audio)':fontsize=18:fontcolor=white:x=10:y=h-th-10,format=yuv420p[v]" -map "[v]" -map 1:a -c:v libx264 -c:a aac -ac 2 -ar 44100 -g 50 -b:v 2000k -maxrate 2000k -bufsize 6000k -shortest "${audio%.*}.mp4"
现在您已经进行了编码,并且所有内容都符合正确连接的相同属性,您可能只需
stream copy 将您的播放列表添加到 YouTube(但我没有测试):
ffmpeg -re -f concat -i input.txt -c copy -f flv rtmp://a.rtmp.youtube.com/live2/my-key
请参阅您之前关于如何
dynamically update the playlist 的问题。
关于audio - 如何从 .mp3 文件中获取元数据并使用 FFmpeg 将其作为文本放入视频中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65161366/
我是一名优秀的程序员,十分优秀!