记一次直播录屏
Posted 小鸡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次直播录屏相关的知识,希望对你有一定的参考价值。
记一次直播录屏
部署
前提:
- 安装ossutil 工具
- 安装ffmpeg
Centos8安装ffmpeg requirement安装包
其中安装opencv-python,还需要安装
yum install mesa-libGL.x86_64
certifi==2021.5.30 chardet==4.0.0 click==8.0.1 colorlog==5.0.1 decorator==4.4.2 Flask==2.0.1 idna==2.10 imageio==2.9.0 imageio-ffmpeg==0.4.4 importlib-metadata==4.6.0 itsdangerous==2.0.1 Jinja2==3.0.1 MarkupSafe==2.0.1 moviepy==1.0.3 numpy==1.21.0 opencv-python==4.5.2.54 Pillow==8.3.1 proglog==0.1.9 redis==3.5.3 requests==2.25.1 tqdm==4.61.2 typing-extensions==3.10.0.0 urllib3==1.26.6 waitress==2.0.0 Werkzeug==2.0.1 zipp==3.4.1
ffmpeg基础命令记录
录屏
ffmpeg -i %s -c:v copy -c:a copy %s -y -loglevel error " % (flv_url, absolute_file_path)
截取一段视频
ffmpeg -i {first_ts_file} -ss 00:00:00.50 -t 00:00:00.10 -c:v copy -c:a copy {first_file}
将图片制作成一段定长的视频
ffmpeg -loop 1 -i {file_image} -pix_fmt yuv420p -vcodec libx264 -b:v 600k -r:v 25 -preset medium -crf 30 -s 1080x1920 -t {interrupt_middle_time} {interrupt_middle_ts_file}
在这里当这个视频作为第一个视频去拼接其他视频的时候,会导致合并后的视频无声的问题。可怕的不止如此,如果放在中间位置,下一个的视频音轨还会跑到中间这个没有音轨的视频中。对ffmpeg也不熟悉,不知道有什么优雅的解决方法,我是加入空白音轨来解决的。
将图片制作成一段定长带有空白音轨的视频
ffmpeg -loop 1 -i {file_image} -f lavfi -i anullsrc=cl=stereo:r=44100 -pix_fmt yuv420p -vcodec libx264 -acodec aac -absf aac_adtstoasc -b:v 600k -preset medium -crf 30 -s 1080x1920 -tune stillimage -shortest -t {interrupt_image_time / 2} {interrupt_begin_ts_file}
视频合并
即使是有空白音轨的视频放在第一段,合并成的视频也都是无声。只能在前面偷偷加个0.20秒的小视频段来拼接,这样就没有问题了。
这种方法很蠢,不清楚应该怎么整,有清楚的麻烦告知!
ffmpeg -i "concat:%s" -acodec copy -vcodec copy -absf aac_adtstoasc %s -loglevel error % (merge_file_str, output_file)
附录
- 获取视频时长
- m3u8 python下载加密解密解析
以上是关于记一次直播录屏的主要内容,如果未能解决你的问题,请参考以下文章
EV录屏 --- 免费无水印,集视频录制与直播功能于一身的桌面录屏软件, 支持录屏涂鸦实时按键显示视频体积压缩等实用功能