用ffmpeg 提取字幕给MP4文件加字幕怎么就是加不进去

ffmpeg转换mp4到flv的使用笔记 - 左右间 - 博客园
假定ffmpeg.exe位于C:\ffmpeg目录下面。
cd c:\ffmpeg
ffmpeg -i E:\a.mp3 -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 E:\1.flv
------以下内容转自随州部落,作者为风吹着------
ffmpeg -i F:\01.wmv -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 f:\test.flv
使用-ss参数 作用(time_off set the start time offset),可以从指定时间点开始转换任务。如:
转换文件格式的同时抓缩微图:
ffmpeg -i "test.avi" -y -f image2 -ss 8 -t 0.001 -s 350x240 'test.jpg'
对已有flv抓图:
ffmpeg -i "test.flv" -y -f image2 -ss 8 -t 0.001 -s 350x240 'test.jpg'
-ss后跟的时间单位为秒
Ffmpeg转换命令
ffmpeg -y -i test.mpeg -bitexact -vcodec h263 -b 128 -r 15 -s 176x144 -acodec aac -ac 2 -ar 22500
-ab 24 -f 3gp test.3gp
ffmpeg -y -i test.mpeg -ac 1 -acodec amr_nb -ar 8000 -s 176x144 -b 128 -r 15 test.3gp
ffmpeg参数设定解说
-bitexact 使用标准比特率
-vcodec xvid 使用xvid压缩
-s 320x240 指定分辨率
-r 29.97 桢速率(可以改,确认非标准桢率会导致音画不同步,所以只能设定为15或者29.97)
画面部分,选其一
-b &比特率& 指定压缩比特率,似乎ffmpeg是自动VBR的,指定了就大概是平均比特率,比如768,1500这样的
就是原来默认项目中有的
-qscale &数值& 以&数值&质量为基础的VBR,取值0.01-255,约小质量越好
-qmin &数值& 设定最小质量,与-qmax(设定最大质量)共用,比如-qmin 10 -qmax 31
-sameq 使用和源同样的质量
-acodec aac 设定声音编码
-ac &数值& 设定声道数,1就是单声道,2就是立体声,转换单声道的TVrip可以用1(节省一半容量),高品质
的DVDrip就可以用2
-ar &采样率& 设定声音采样率,PSP只认24000
-ab &比特率& 设定声音比特率,前面-ac设为立体声时要以一半比特率来设置,比如192kbps的就设成96,转换
君默认比特率都较小,要听到较高品质声音的话建议设到160kbps(80)以上
-vol &百分比& 设定音量,某些DVDrip的AC3轨音量极小,转换时可以用这个提高音量,比如200就是原来的2倍
这样,要得到一个高画质音质低容量的MP4的话,首先画面最好不要用固定比特率,而用VBR参数让程序自己去
判断,而音质参数可以在原来的基础上提升一点,听起来要舒服很多,也不会太大(看情况调整
例子:ffmpeg -y -i "1.avi" -title "Test" -vcodec xvid -s 368x208 -r 29.97 -b 1500 -acodec aac -ac 2 -ar 24000 -ab 128 -vol 200 -f psp -muxvb 768 "1.***"
解释:以上命令可以在Dos命令行中输入,也可以创建到批处理文件中运行。不过,前提是:要在ffmpeg所在的目录中执行(转换君所在目录下面的cores子目录)。
-y(覆盖输出文件,即如果1.***文件已经存在的话,不经提示就覆盖掉了)
-i "1.avi"(输入文件是和ffmpeg在同一目录下的1.avi文件,可以自己加路径,改名字)
-title "Test"(在PSP中显示的影片的标题)
-vcodec xvid(使用XVID编码压缩视频,不能改的)
-s 368x208(输出的分辨率为368x208,注意片源一定要是16:9的不然会变形)
-r 29.97(帧数,一般就用这个吧)
-b 1500(视频数据流量,用-b xxxx的指令则使用固定码率,数字随便改,1500以上没效果;还可以用动态码率如:-qscale 4和-qscale 6,4的质量比6高)
-acodec aac(音频编码用AAC)
-ac 2(声道数1或2)
-ar 24000(声音的采样频率,好像PSP只能支持24000Hz)
-ab 128(音频数据流量,一般选择32、64、96、128)
-vol 200(200%的音量,自己改)
-f psp(输出psp专用格式)
-muxvb 768(好像是给PSP机器识别的码率,一般选择384、512和768,我改成1500,PSP就说文件损坏了)
"1.***"(输出文件名,也可以加路径改文件名)本帖子已过去太久远了,不再提供回复功能。FFMPEG使用小结(1)
最近在做使用FFMPEG将码流导出到AVI/MP4文件,碰到些许问题记录下来。
1、导出的AVI/MP4文件,播放速度不正确,如1分钟的码流花了50秒或者70秒放完。
原因: 出现此问题主要是因为PTS计算的有问题。
解决方法:&PTS是根据每个包的时间来计算的,在计算前需要先设置&AVCodecContext 的time_base. 此处需要将time_base.den = &1000;
time_base.num = 1;然后再调用av_rescale_q()函数去计算PTS。
2、导出的AVI/MP4文件播放有花屏
原因:出现花屏说明丢帧了。
解决方法: 丢帧说明的写包av_write_frame()的时候失败。失败的原因秀有可能是因为PTS出现问题。FFMPEG写入AVI/MP4文件的时候,一定要确保
PTS是递增的,当前帧的PTS不能等于或小于前面所有帧的PTS,否则av_write_frame()会失败。因此我们在将码流写入到AVI/MP4文件前,需要先将确保时间戳的正确性,如果不正确,请手动调整为正确。
3、导出的AVI/MP4文件时崩溃
原因:访问越界
解决方法:很有可能是AVCodecContext&video_width、 video_height没有设置或为0导致的。但是不排除其他原因。
& &建议可以看ffmpeg源码排查问题。
4、导出的文件音视频不同步
原因:两个码流时间不同步。
解决方法:
1、针对视频的AVStream 需要设置正确的AVCodecContext &time_base,参照问题1
2、两个视频包间的音频包的时间戳都相同,且等于前一个视频包的时间戳。根据问题1的解决方法,需要将音频包的时间戳在前一个视频包的时间戳的基础上递增上去。
5、导出的文件音频不清晰,断断续续
原因:导出的文件音频比特率设置错误
解决方法:针对音频的AVStream 需要设置正确的bit_rate、sample_rate、sample_fmt = AV_SAMPLE_FMT_S16、channels
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5160次
排名:千里之外
转载:10篇
(1)(1)(4)(2)(4)(1)(1)(1)(1)

我要回帖

更多关于 ffmpeg 加字幕 的文章

 

随机推荐