Author : zbzhen, Modified : Sun Apr 28 13:33:38 2024
用简映生成字幕文件, 再通过 https://kz16.top/jy/ 把剪映的json转换成srt字幕
网易见外 https://jianwai.youdao.com/ , 它很方便
在线office的听写功能, 一个月有300分钟, 需要用python转换一下,
python转换代码如下
import os def get_path_and_file_name_list(path): list = [] for root, dirs, files in os.walk(path): for file in files: list.append(root+'/'+file) return list path = os.getcwd() files = get_path_and_file_name_list(path) endl = "\n" ms = ",100 --> " me = ",000\n" for filename in files: if filename[-4:] == ".srt": with open(filename,'r', encoding='UTF-8') as f: lines = f.readlines() n = len(lines)//4 + 1 fistline = lines[0].rstrip() if fistline != "1": with open(filename,'w', encoding='UTF-8') as f: for k in range(n-1): t = k*4 newline = str(k+1) + endl newline += lines[t][:8] + ms newline += lines[t+4][:8] + me newline += lines[t+2] + endl f.writelines(newline) newline = str(n) + endl newline += lines[-3][:8] + ms newline += lines[-3][:8] + ",999\n" newline += lines[-1][:8] f.writelines(newline)
win 直接下载 https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z
推荐用7-zip解压 https://www.7-zip.org/
可以选择不添加环境变量, 比较简单的办法是
把视频文件和 ffmpeg.exe
文件都放到桌面
然后把下文指令中的ffmpeg
替换成./ffmpeg
实测下面的方法有效
ffmpeg -i xxx.wmv -vf subtitles=1.srt xxx.mp4
或
ffmpeg -i subtitles.srt subtitles.ass ffmpeg -i mymovie.mp4 -vf ass=subtitles.ass mysubtitledmovie.mp4
指定字幕字体
ffmpeg -i Video_2023-02-14_111636_edit.wmv -vf subtitles=1.srt:force_style='FontName=SmileySans-Oblique"' xxx.mp4
实测下面的方法有效, 对常见格式的视频提取mp3都是有效的:
ffmpeg -i input.mka -vn -ar 44100 -ac 2 -ab 128k -f mp3 "output.mp3"
下面的命令并没有经过实测
参考 https://www.jianshu.com/p/ba8670f09df0
ffmpeg -i movie.mkv -i sub2.srt -map 0:v -map 0:a -map 1:s -c copy output.mkv
参考 https://zhuanlan.zhihu.com/p/163652478
ffmpeg -i "1.mp4" -lavfi "subtitles=1.srt:force_style=\'Alignment=2,OutlineColour=&H100000000,BorderStyle=3,Outline=1,Shadow=0,Fontsize= 12,MarginV=5\'" -vcodec h264_nvenc "sub_video.mp4" -y
参考 https://blog.csdn.net/qq_36336003/article/details/90205336
ffmpeg -i origin.mp4 -vcodec copy -acodec copy -ss 00:01:26 -to 00:01:30 output.mp4 -y
ffmpeg -i origin.mp4 -vf delogo=1000:32:260:86 output.mp4
解释:delogo=x:y:w:h, 其中x,y为距左上角坐标,w,h为水印的宽度和高度
ffmpeg -i output.mp4 -i pptv.png -filter_complex overlay output3.mp4
ffmpeg -i output.mp4 -i pptv.png -filter_complex overlay=W-w output4.mp4
ffmpeg -i output.mp4 -i pptv.png -filter_complex overlay=0:H-h output5.mp4
ffmpeg -i output.mp4 -i pptv.png -filter_complex overlay=W-w:H-h output6.mp4
提取封面
ffmpeg -i output.mp4 -ss 00:00:00 -t 1 -r 1 -q:v 2 -f image2 cover.jpg
解释:ffmpeg -i 原始视频文件 -ss 00:00:00 -t 1 -r 1 -q:v 2 -f image2 封面图片文件,-ss开始时间,-t共需多少时间,-r代表每秒的帧数,-q:v代表存储图片质量。这里为了简单,我们将第一帧的图片作为我们的封面。
提取音频
示例:ffmpeg -i origin.mp4 -acodec copy -vn voice.aac
解释:ffmpeg -i 原始视频文件 -acodec copy -vn 输出音频文件
提取视频
示例:ffmpeg -i origin.mp4 -vcodec copy -an video0.mp4
解释:ffmpeg -i 原始视频文件 -acodec copy -vn 输出视频文件
成功的例子: ffmpeg -i input.mka -vn -ar 44100 -ac 2 -ab 128k -f mp3 "output.mp3"
ffmpeg -i video.mp4 -i audio.mp4 -c:v copy -c:a aac -strict experimental output.mp4
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a copy output.mp4
参考 https://www.cnblogs.com/duanxiaojun/articles/6904878.html
方法一: 对于 MPEG 格式的视频,可以直接连接:
ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg
方法二: 先创建一个文本文件filelist.txt
:
file 'input1.mkv'
file 'input2.mkv'
file 'input3.mkv'
然后:
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
FFmpeg是一个非常强大的工具,可以用来处理视频和音频文件。如果你想要减小MP4文件的体积,大致有以下几种方法:
降低比特率:这是减小视频文件大小最直接的方法。比特率越低,视频文件越小,但视频质量也会相应降低。
ffmpeg -i input.mp4 -b:v 1000k -bufsize 1000k output.mp4
这里的-b:v
是指定视频比特率,1000k
表示1000kbps。-bufsize
也设置为1000k,这有助于控制输出文件的大小。
改变分辨率:减小视频的分辨率也会减小文件的大小。
ffmpeg -i input.mp4 -s 1280x720 output.mp4
-s
后面跟的是新的分辨率大小。
转换编码器:某些编码器比其他编码器更有效率。例如,H.265/HEVC通常能比H.264/AVC提供更小的文件大小,在相同的质量下。
ffmpeg -i input.mp4 -c:v libx265 -crf 28 output.mp4
-c:v libx265
指定使用x265编码器,-crf
是常量速率因子,数字越大,压缩越高,质量越低。
移除音轨:如果视频文件中的音频不是必须的,移除音轨可以进一步减小文件大小。
ffmpeg -i input.mp4 -c:v copy -an output.mp4
-an
参数指示ffmpeg忽略音频流。
使用2-pass编码:2-pass编码可以在给定的比特率下提供更好的质量。这会让编码过程运行两次,第一次分析视频,第二次进行实际的编码。
ffmpeg -y -i input.mp4 -c:v libx264 -b:v 1000k -pass 1 -an -f mp4 /dev/null && \ ffmpeg -i input.mp4 -c:v libx264 -b:v 1000k -pass 2 -c:a aac -b:a 128k output.mp4
第一行命令是第一遍编码,它会生成一个日志文件,不会输出视频。第二行命令是第二遍编码,它会使用第一遍编码生成的日志文件来优化视频编码。
使用上述方法时,需要注意的是,视频质量和文件大小之间总是存在权衡。你可能需要进行一些实验,以找到适合你需要的设置。另外,FFmpeg的各个版本可能支持不同的编码器和选项,所以请确保你使用的FFmpeg版本支持你想要使用的功能。