dwing吧 关注:5,665贴子:89,012

回复:常up分享:边学边用一年多来的小技巧s

取消只看楼主收藏回复

-ss 5 -to 50 -i a.mp4 -ss 53 -to 98 -i a.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat...这样OK
-ss 5 -to 50 -i a.mp4 -ss 53 -to 98 -i a.mp4 -filter_complex "[0][1]concat...这样坚持15秒就各种爆内存
[aac @ 0625b380] get_buffer() failed
Error while decoding stream #0:0: Cannot allocate memory
Video encoding failed
原因是什么? 不懂


IP属地:广东18楼2020-11-14 11:22
回复
    解决0秒(首帧)时候画面并没overlay内容
    在每句后面加上setpts=PTS-STARTPTS(可加的情况下)
    这个特殊问题在手电脑版的不会出现 在安卓版才有


    IP属地:广东来自Android客户端19楼2020-11-22 10:40
    收起回复
      srt字幕流
      $ ffmpeg -i **.mp4 -vf "subtitles=**.src:force_style='FontSize=20,Alignment=6'" output.mp4
      #Alignment参数
      1: Bottom left
      2: Bottom center
      3: Bottom right
      5: Top left
      6: Top center
      7: Top right
      9: Middle left
      10: Middle center
      11: Middle right
      ass字幕流 srt设置FORCESTYLE也适用,alignment位置除外
      最新版本的 ffmpeg 使用 ASS中的V4+ Styles
      "[V4+ Styles]\r\n"
      /* ASSv4 header */
      "Format: Name, "
      "Fontname, Fontsize, "
      "PrimaryColour, SecondaryColour, OutlineColour, BackColour, "
      "Bold, Italic, Underline, StrikeOut, "
      "ScaleX, ScaleY, "
      "Spacing, Angle, "
      "BorderStyle, Outline, Shadow, "
      "Alignment, MarginL, MarginR, MarginV, "
      "Encoding\r\n"
      01.Name 风格(Style)的名称. 区分大小写. 不能包含逗号.
      02.Fontname 使用的字体名称, 区分大小写.
      03.Fontsize 字体的字号
      04.PrimaryColour 设置主要颜色, 为蓝-绿-红三色的十六进制代码相排列, BBGGRR. 为字幕填充颜色
      05.SecondaryColour 设置次要颜色, 为蓝-绿-红三色的十六进制代码相排列, BBGGRR. 在卡拉OK效果中由次要颜色变为主要颜色.
      06.OutlineColour 设置轮廓颜色, 为蓝-绿-红三色的十六进制代码相排列, BBGGRR.
      07.BackColour 设置阴影颜色, 为蓝-绿-红三色的十六进制代码相排列, BBGGRR. ASS的这些字段还包含了alpha通道信息. (AABBGGRR), 注ASS的颜色代码要在前面加上&H
      08.Bold -1为粗体, 0为常规
      09.Italic -1为斜体, 0为常规
      10.Underline [-1 或者 0] 下划线
      11.Strikeout [-1 或者 0] 中划线/删除线
      12.ScaleX 修改文字的宽度. 为百分数
      13.ScaleY 修改文字的高度. 为百分数
      14.Spacing 文字间的额外间隙. 为像素数
      15.Angle 按Z轴进行旋转的度数, 原点由alignment进行了定义. 可以为小数
      16.BorderStyle 1=边框+阴影, 3=纯色背景. 当值为3时, 文字下方为轮廓颜色的背景, 最下方为阴影颜色背景.
      17.Outline 当BorderStyle为1时, 该值定义文字轮廓宽度, 为像素数, 常见有0, 1, 2, 3, 4.
      18.Shadow 当BorderStyle为1时, 该值定义阴影的深度, 为像素数, 常见有0, 1, 2, 3, 4.
      19.Alignment 定义字幕的位置. 字幕在下方时, 1=左对齐, 2=居中, 3=右对齐. 1, 2, 3加上4后字幕出现在屏幕上方. 1, 2, 3加上8后字幕出现在屏幕中间. 例: 11=屏幕中间右对齐. Alignment对于ASS字幕而言, 字幕的位置与小键盘数字对应的位置相同.
      20.MarginL 字幕可出现区域与左边缘的距离, 为像素数
      21.MarginR 字幕可出现区域与右边缘的距离, 为像素数
      22.MarginV 垂直距离


      IP属地:广东21楼2020-11-25 15:17
      收起回复
        http://tieba.baidu.com/p/5957711372
        关于序列文件名图片尺寸不一致转视频会跳过图片情况,
        2018年之后的版本应该已经解决了,根本就不用PIPE。
        当时之所以发现这问题,是用2017年之前的版本。
        现在无论是安卓还是电脑版。解决方法,分两步做。
        先做一个纯视频,
        -loop 1 -r 9/40 -i %3d.jpg -vf "scale=640:-2,pad=720:1280:(ow-iw)/2:(oh-ih)/2:color=#000123,setsar=1" -r 25 -t 40.0 输出文件.mp4
        然后字幕音频再将输出文件作处理。
        .
        想一个命令搞不定,一直出错提示DEPRECATED PIXEL之类错误, 无论是电脑,安卓甚至LINUX版,都一样。
        谢谢楼上的网友带我见识了LINUX版本的FFMPEG。 ——说实在,非常不方便的操作。 安卓版最方便,特别是DRAWTEXT的方面。文字可以换行,但电脑和LINUX不可以


        IP属地:广东23楼2021-01-28 16:35
        收起回复
          ffmpeg -sub_charenc gb18030 -i dd.srt dd2.srt
          乱码修正


          IP属地:广东来自Android客户端24楼2021-02-01 11:19
          收起回复
            彻底解决rm,rmvb编码后不同步
            用不同步的时差作为输入
            -ss 41 -i a.rmvb -ss 40.75 -i a.rmvb
            -vf "[0:v]subtitles=d.srt:force_style='FontName=微软雅黑,fontsize=25', setsar=1[v]" -map [v] -map 1:a -r 25 -t 30 -crf 25 output.mp4
            至于时差多少这个自己来慢慢调吧


            IP属地:广东来自Android客户端25楼2021-02-03 19:24
            回复
              把图片放到一个正方里面的长宽智适应
              scale='if(gte(iw,ih),360,-1):if(gte(iw,ih),-1,360)',pad=360:360:(ow-iw)/2:(oh-ih)/2:color=random,setsar=1


              IP属地:广东来自Android客户端26楼2021-02-18 11:17
              回复
                同一文件夹内操作
                ff -y -safe 0 -f concat -i clist.txt -c copy 210221-28.mp4
                格式完全相同的多文件合并, 如果有中文名或空格等,要在-i 之前加入 -safe 0
                格式不同的不能用这种方法合并文件。


                IP属地:广东27楼2021-03-01 11:12
                回复
                  4角透明
                  -i a.mp4
                  -loop1 -r 25 -i 1280x720用ps制作4角透明.png
                  -i a.mp4
                  -filter_complex
                  "[0:v]scale=1280:720,setsar=1[0],
                  [1:v]alphaextract[1],
                  [2:v]boxblur=8:32:8:32,scale=1280:720,setsar=1[2],
                  [0][1]alphamerge[m],[2][m]overlay=shortest=1,scale=848:480,setsar=1[v]"


                  IP属地:广东来自Android客户端28楼2021-03-04 10:55
                  回复

                    奇怪的知识增加了,FFMPEG仍未支持PGS字幕
                    -filter_complex "color=cornsilk:s=320x240:duration=125[v],
                    [v]fps=30,drawtext=msyh.ttf:text='编码时间=%{localtime\:%Y/%m/%d\\\-%H\\\:%M\\\:%S}':x=8:y=8:fontsize=20:r=30,
                    drawtext=msyh.ttf:text='从0秒数=%{eif\:t\:d}':x=8:y=98:fontsize=20:r=30,
                    drawtext=msyh.ttf:text='时分秒.xxx=%{pts\:hms}':x=8:y=68:fontsize=20:r=30,
                    drawtext=msyh.ttf:text='timecode=':timecode='25\:59\:00\:00':fontsize=20:r=30:x=8:y=38,
                    drawtext=msyh.ttf:text='4种时间显示,文件125秒,编码实时+用时3秒':fontsize=15:r=30:x=8:y=192"
                    -r 30 -keyint_min 30 -g 30 -sc_threshold 0 draw.GIF


                    IP属地:广东29楼2021-03-10 15:45
                    收起回复
                      drawtext=msyh.ttf:text='%{pts\:localtime\:1577836800}'
                      这样就可以显示了2020年1月1日 20:00:00
                      因为范围只能从1970-1-1到2038-1-19,一年31556736秒,自己要什么时候算。


                      IP属地:广东30楼2021-03-12 10:45
                      收起回复
                        drawtext在windows版不能换行。但渲染效果还是可以的 :bordercolor=red@0.33:borderw=19:shadowx=8:shadowy=8


                        IP属地:广东32楼2021-03-26 15:00
                        回复
                          atempo=1/1.2,asetrate=48000*1.2 升调
                          atempo=1/0.8,asetrate=48000*0.8
                          降调


                          IP属地:广东来自Android客户端33楼2021-04-01 18:01
                          回复
                            回音 aecho=0.8:0.88:60:0.4
                            破音 acrusher=.1:1:58:0:log


                            IP属地:广东来自Android客户端34楼2021-04-02 16:28
                            回复
                              指定时间的OVERLAY,视频应该这样搞,如果是图片就直接。GIF就要输入时加ignore_loop 0 -i a.gif.
                              否则会OVERLAY时卡定在最后一FRAME。
                              ff20 -y -ss 33:21 -to 38:46 -i 0504.mp4 -ss 36:34 -to 37:56 -i 0504.mp4 -filter_complex
                              "[1:v]scale=800:450,frei0r=pixeliz0r:0.05|0.05,setpts=PTS-STARTPTS+193/TB,setsar=1[o],[0:v]crop=0.8*iw:0.8*ih:0.1*iw:0.14*ih,scale=800:450,setsar=1[d],
                              [d][o]overlay=enable='between(t,193,275)',setpts=8/9*PTS,drawtext=PY.ttf:text='210504网闻':fontcolor=yellow@0.5:fontsize=40:y=8:x=-tw*2+60*mod(t\,30)+tw:enable=lt(mod(t\,4)\,2),setsar=1[v],
                              [0:a]atempo=9/8[a]" -map [v] -map [a] -r 24 -crf 28 -keyint_min 24 -g 24 -sc_threshold 0 -c:a libmp3lame 210504ab.mp4
                              上面的193和275都是手动计出来的。


                              IP属地:广东35楼2021-05-06 14:47
                              收起回复