ffmpeg视频操作记录

1.截取视频

ffmpeg -ss 00:00:02.500 -accurate_seek -i 1.mov -c:v copy -c:a copy 1_output.mov

-ss 是开始时间
-t 从开始截取的时间算,截取持续的时间,单位秒,如果不写就是到影片最后
-i 是源文件
-c:v copy :视频保持原来的参数
-c:a copy:音频保持原来的参数
2.视频压缩

ffmpeg -i 1.mp4 -b:v 400k -s 960x540 2.mp4

-i 输入文件的路径或者url;
-s 设置输出文件的分辨率,wxh;
-b:v 输出文件的码率,一般500k左右即可,人眼看不到明显的闪烁,这个是与视频大小最直接相关的;
输出视频的分辨率为960x540,码率为400k
或者

ffmpeg -threads 4 -i input.mkv -r 29.97 -vcodec libx264 -s 960x540 -flags +loop -cmp chroma -deblock 0:0 -crf 24 -bt 256k -refs 1 -coder 0 -me_range 16 -subq 5 -partitions parti4x4+parti8x8+partp8x8 -g 250 -keyint_min 25 -level 30 -qmin 10 -qmax 51 -trellis 2 -sc_threshold 40 -i_qfactor 0.71 -ab 128k -ar 48000 -ac 2 out_put.mp4

3.提取视频中的音频

 ffmpeg -i 1.mp4 -acodec copy -vn 2.aac

提取mp3的最好使用下面格式(音质320kpbs)
ffmpeg -i test.mp4 -b:a 320k -f mp3 -vn test.mp3

-i 表示input,即输入文件

-f 表示format,即输出格式

-vn表示vedio not,即输出不包含视频

3_1.视频转wav文件

ffmpeg -i  -f wav -ac 1 -ar 16000 -loglevel error test.wav

参数解释

-i: 表示输入的音频或视频
-ac: channel 设置通道3, 默认为1
-ar: sample rate 设置音频采样率
-acodec: 使用codec编解码,pcm_s16le指位深16bit,转flac此处参数则需改成flac
-ab: bitrate 设置音频码率
-vn: 不做视频记录
-loglevel : 日志等级

4.音频截取

ffmpeg -i 325.acc -ss  00:00:00 -t  02:00:00  325_1.acc 

5、视频加字幕,以及错误解决

  ffmpeg -i 微课字幕测试1分钟小样.mov -lavfi 
"subtitles=2zimu_down.srt:force_style='Alignment=2,Fontsize=14,MarginV=20'" -crf 1 -c:a copy "20.mov"

Alignment:字幕居中
Fontsize:字体大小
MarginV:字幕垂直高度

https://www.bilibili.com/read/cv11490614/

shell命令

@echo off
rem chcp 65001
echo 1.截取视频
echo 2.视频压缩
echo 3.提取视频中的音频
echo 4.截取音频
echo 5.给视频添加字幕
set /p a=请从1-5中选择想要的功能:
if %a%==1 goto _f1
if %a%==2 goto _f2
if %a%==3 goto _f3
if %a%==4 goto _f4
if %a%==5 goto _f5
:_f1
set /p start_time=请输入开始时间,按回车键确认,格式:00:00:00,默认是:00:00:00
if not defined start_time set start_time=00:00:00
set /p cut_time_length=请输入截取时长单位秒,按回车键确认,默认60s也就是1分钟。
if not defined cut_time_length set cut_time_length=60
set /p input_file=请输入源文件路径,按回车键确认。
set /p output_file= 请输入输出文件路径,按回车键确认。默认output.mp4
if not defined output_file set output_file=output.mp4
echo 开始执行
ffmpeg -ss  %start_time% -t %cut_time_length% -accurate_seek -i %input_file% -codec copy %output_file%
echo 截取视频完成请确认。
goto :eof
:_f2
set /p input_file=请输入源文件路径,按回车键确认。
set /p output_file=请输入输出文件路径,按回车键确认。默认output_compress.mp4
if not defined output_file set output_file=output_compress.mp4
rem ffmpeg -i %input_file% -vcodec libx264 -crf 24 %output_file%
rem ffmpeg -i %input_file% -b:v 400k -s 960x540 %output_file%
ffmpeg  -threads 2 -i %input_file% -c:v libx264 -crf 28 -preset veryfast -c:a copy -movflags +faststart %output_file% -y
echo 压缩完成请确认。
goto :eof
:_f3
set /p input_file=请输入源文件路径,按回车键确认。
set /p output_file=请输入输出mp3文件路径,按回车键确认。默认输出output.mp3到桌面
if not defined output_file set output_file=output.mp3
ffmpeg -i %input_file% -f mp3  -b:a 320k -vn %output_file%
echo 提取完成请确认。
goto :eof
:_f4
set /p input_file=请输入想要截取的音频文件路径,按回车键确认。
set /p start_time=请输入开始时间,按回车键确认,格式:00:00:00,默认是:00:00:00
if not defined start_time set start_time=00:00:00
set /p cut_time_length=请输入截取持续时间,按回车键确认,格式:00:00:00,默认是:00:01:00
if not defined cut_time_length set cut_time_length=00:01:00
set /p output_file=请输入输出文件路径,按回车键确认。默认输出output_cut.mp3到桌面
if not defined output_file set output_file=output_cut.mp3
ffmpeg -i %input_file% -ss  %start_time% -t %cut_time_length% -acodec copy %output_file%
echo 截取音频完成请确认。
goto :eof
:_f5
set /p input_file=请输入想要添加字幕的视频路径,按回车键确认。
set /p text_file=请输入字幕文件路径,格式srt 或者ass。
set /p output_file=请输入输出文件路径,按回车键确认。默认输出output_captions.mp4到桌面
if not defined output_file set output_file=output_captions.mp4
ffmpeg -i %input_file% -vf subtitles='%text_file%' %output_file%
echo 字幕添加完成请确认。
pause
goto :eof

将上面的内容存到ffmpeg_.bat, 然后文件编码改为ANSI运行即可。

posted @ 2021-06-23 00:20  公众号python学习开发  阅读(172)  评论(0编辑  收藏  举报