【问题标题】:what is the proper way for text in multi-pass encoding using ffmpeg使用ffmpeg进行多遍编码的文本的正确方法是什么
【发布时间】:2016-06-01 04:07:02
【问题描述】:

cpulimit -l 180 ffmpeg-static/ffmpeg -ss 0 -t 8.96 -i '/var/www/html/Videos2/Character Jack/Happy/生日快乐场景.mp4' -filter_complex '[0] drawtext=textfile =scene2.txt:fontsize=199.68:fontfile=/var/www/html/fonts/Arial.ttf:x=288:y=409:fontcolor_expr=ffffff%{eif\:clip(1+(255*t/4 )\, 0\, 255)\:x\:2}' -pass 1 -f h264 -y -> /dev/null &&

cpulimit -l 180 ffmpeg-static/ffmpeg -ss 0 -t 8.96 -i '/var/www/html/Videos2/Character Jack/Happy/生日快乐场景.mp4' -i '/var/www/html /Userfiles/Users/blaze/Projects/earl3x/audio/scene2_music.x.mp3' -filter_complex '[1] 音量=0.95 [au1]; [0][au1] amix=inputs=2:duration=shortest' -c:v 复制 -c:a libmp3lame -pix_fmt yuv420p -preset ultrafast -shortest -movflags faststart -y -pass 2 /var/www/html/Userfiles /Users/blaze/example/earl4x/scene2.mp4

我想要达到什么目的? 在第一遍编码文本元素/图形 并在第二遍编码声音(音频)

第一遍和第二遍运行良好(完全没有错误) 并且输出没有伪影。

但是文字完全找不到! 看起来是这样,第二遍不知道第一遍里面有文本编码。

运行/格式化命令的正确方法是什么?

谢谢

【问题讨论】:

  • 不喜欢 pass 方法。使用单遍方法检查您的 drawtext 是否打印文本。

标签: php ubuntu video ffmpeg transcoding


【解决方案1】:

我解决了这个问题。

我不得不通过另一种方法


-使用绘制文本生成视频(不要解析 -pass 1 参数) 正常运行你的输出

-把你输出的url作为下一个命令的输入url(使用-y,记住不通过)

  • 添加音频文件作为第二个输入参数

-输出最终文件

请注意,如果您有一系列复杂的组合,事情可能会变得非常混乱

所以我必须找出一个特定于我的案例的算法。

【讨论】:

    【解决方案2】:

    两次都必须应用drawtext。 pass 1 是生成视频,分析视频然后丢弃它,所以 pass 2 也必须存在 drawtext。

    ffmpeg -ss 0 -t 8.96 -i '/var/www/html/Videos2/Character Jack/Happy/happy birthday scene.mp4' \
    -filter_complex \
    '[0] drawtext=textfile=scene2.txt:fontsize=199.68:fontfile=/var/www/html/fonts/Arial.ttf: \
     x=288:y=409: \
     fontcolor_expr=ffffff%{eif\: clip(1+(255*t/4)\, 0\, 255)\:x\:2}' \
    -pass 1 -c:v libx264 -f null -
    

    第二遍:

    ffmpeg -ss 0 -t 8.96 -i '/var/www/html/Videos2/Character Jack/Happy/happy birthday scene.mp4' \
           -i '/var/www/html/Userfiles/Users/blaze/Projects/earl3x/audio/scene2_music.x.mp3' \
    -filter_complex \
    '[0] drawtext=textfile=scene2.txt:fontsize=199.68:fontfile=/var/www/html/fonts/Arial.ttf: \
     x=288:y=409: \
     fontcolor_expr=ffffff%{eif\: clip(1+(255*t/4)\, 0\, 255)\:x\:2}[v];
     [1]volume=0.95 [au1]; [0][au1] amix=inputs=2:duration=shortest[a]' -map "[v]" -map "[a]" \
    -pass 2 -c:v libx264 -c:a libmp3lame -pix_fmt yuv420p -preset ultrafast -shortest \
    -movflags +faststart -y \
    /var/www/html/Userfiles/Users/blaze/example/earl4x/scene2.mp4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2021-09-21
      • 2010-11-22
      • 1970-01-01
      • 2012-02-02
      相关资源
      最近更新 更多