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

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

取消只看楼主收藏回复

转的,时间参数:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身


IP属地:广东52楼2022-01-21 14:08
回复

    drawtext=msyh.ttf:text='可用冒号%{pts\:localtime\:1641630398\:%Y年%m月%d日-\\\%H\\\:%M\\\:%S}'
    drawtext=msyh.ttf:text='用文字%{pts\:localtime\:1641630398\:%Y年%m月%d日-%H时%M分%S秒}'
    当年一直想做这样的效果,但是无法搞个冒号,原来当初只差一点点就行了。


    IP属地:广东53楼2022-01-21 14:53
    回复
      vstack 竖排
      hstack 并排
      xstack NXN排
      想取最短时间,用 :SHORTEST=1


      IP属地:广东54楼2022-01-24 12:04
      回复
        More than 1000 frames duplicated 卡住不动时,所有[视频输出]前加设FPS,例如 ......,fps=25,setsar[v1],......,fps=25,setsar[v2],


        IP属地:广东来自Android客户端55楼2022-03-04 15:39
        回复
          回复27楼
          ff -i "concat:.\in1.ts|.\in2.ts|.\in3.ts" -c copy .\out.ts 这种做法基本上只有出来是第1个文件,哪怕是同规格的编码出来的文件,如果,从从参数出来的文件合并应该用list的的方法,而list是可以用bat来生成的 (for %%i in (*.mp4) do @璐村惂鐢ㄦ埛_000076K馃惥 file '%cd%\%%i') > list.txt 然后再 ff -y -safe 0 -f concat -i list.txt -c copy list.mp4
          %cd%如果是在同一文件夹内就不用


          IP属地:广东57楼2022-03-11 10:55
          回复
            能够直接 -ss -t 剪到秒的设置(每24帧为关键帧)
            -keyint_min 24 -g 24 -sc_threshold 0 在编码输出文件前加上,就能出来的文件剪切到任意秒也不会不同步。因为正常编码默认是250即大约10秒为关键帧,所以不同步。
            但这样编码出来的文件比正常码率会高一两成,速度也慢一两成。但对于一般想随意剪切的百秒内小视频,几乎无影响。但方便极方便无重编码剪切。


            IP属地:广东58楼2022-03-29 10:57
            回复
              多重截取还是-SS -TO 几个输入再CONCAT更快捷,以下为例,虽然视频只有18.5秒,但编码时长为260秒。
              select='between(t,204,206.5)+between(t,97,106)+between(t,374,391)',setpts=N/FRAME_RATE/TB" -af "aselect='between(t,204,206.5)+between(t,97,106)+between(t,374,391)',asetpts=N/SR/TB"
              一般输入文件不大于一分钟或一百秒内,才可以用select 或TRIM,否则,只会更浪费时间。
              trim=15.8:31.5,setpts=PTS-STARTPTS,atrim=15.8:31.5,asetpts=PTS-STARTPTS


              IP属地:广东59楼2022-03-29 13:10
              回复
                drawtext timecode 不要选微软雅黑。
                就能解决数字左右晃动的问题。


                IP属地:广东来自Android客户端60楼2022-03-31 08:45
                回复
                  找关键帧-c copy其实没有解决方法的。
                  只能找最接近的可接受的解决方法:无论是电脑Klite或手机MXPlayer,受到关键帧影响,不能随意拖到任意秒来开始播放。但会有一定的起始时间(即关键帧时间点),选-ss前和-to后的拖放起始的秒数。这样的话--c copy就基本上能做到同步了,出来的文件Duration与Source duration的偏差基本上一秒内甚至为0.
                  至于-ss在-i之前和之后对-c cop影响是不几乎不存在的。在-i后最多差1秒的读取时间。
                  另外,在输出文件之前加上 -vsnyc 2 -r 75 这样出来的文件的FPS就是可变的FPS,因为有很多时候手机拍的视频都是可变FPS,这样编码就可以保持原文件的FPS了。


                  IP属地:广东61楼2022-04-14 11:16
                  回复
                    [libfdk_aac @ 0x76dee8f700] Queue input is backward in time
                    遇到这个情况编码出来的会不同步,要修正就用。 -async 1
                    但是如果想要动态帧率就要这样处理。
                    -async 2 -r 75 这样就能满足一般手机拍摄的视频的原帧率编码。


                    IP属地:广东来自Android客户端62楼2022-04-21 16:40
                    收起回复
                      回复35楼。:enable='between(t,16,26)这是指定时间且只有一个overlay,如果是第2或以后的话,就用+秒数/tb(开始时间),不指定时间则不设置between,以下
                      overlay的eof_action参数:
                      eof_action=0:重复前一帧(默认,不用写出来)
                      eof_action=1:停止所有流
                      eof_action=2:停留在主画面


                      IP属地:广东来自Android客户端63楼2022-05-01 19:45
                      回复
                        ,drawtext=/storage/emulated/0/fonts/msyh.ttf:text='选自电影《冰河世纪五》31分',subtitles='/storage/emulated/0/ic5+.mkv:si=5':fontsdir='/storage/emulated/0/fonts/':force_style='fontname=微软雅黑,arial,scalex=1.5,scaley=3,MarginL=2,MarginR=2,marginV=-32,OutlineColour=&H000456,BorderStyle=1,outline=4'
                        双语字幕要这样操作。


                        IP属地:广东来自Android客户端64楼2022-05-30 15:27
                        回复
                          -ss 9 -t 1 -i aa.mp4 -i "啊.mp3" -filter_complex "[0:v]pad=800:800:40:80,drawtext=ft.ttf:text='十大恶心BGM之一':fontsize=60:fontcolor=white,setsar=1,loop=31:size=31*25[v],[1:a]adelay=390|390,aloop=loop=30:size=2*48000[a]" -map [v] -map [a] -c:a libfdk_aac -t 33.0 大厂的十大恶心bgm出自哪位球员.mp4 -y
                          终于搞定了循环的问题。v循环32次a频循环31次,为什么要这样写法?我也不懂。反正误打误撞的情况下测试成功了。


                          IP属地:广东来自Android客户端65楼2022-06-22 07:34
                          收起回复
                            for %%a in ("*.mkv") do ffmpeg -y
                            -i "%%a" -filter_complex "[0:v]drawtext=msyh.ttf:text='%%a 中字版' ,subtitles='%%a:si=0',setsar=1[v]"
                            -map [v] -map 0:a "%%~na.mp4"
                            生成BAT文件,可以这样玩。


                            IP属地:广东66楼2022-06-28 16:22
                            回复
                              [a]aformat=sample_fmts=fltp:sample_rates=48000,loudnorm=i=-9[a]
                              多文件合并,用这个统一音量


                              IP属地:广东67楼2022-10-13 11:54
                              回复