DeepFace坑之ffmpeg

简介: 踩坑之ffmpeg

DeepFaceLab

DeepFaceLab是一款支持视频或图片的换脸开源软件,其使用非常简单,有官方的juptyer notebook案例,这里不做过多的教程介绍。

在使用过程中遇到的一点问题,在这里记录一下。DeepFaceLab的详细步骤分为五步:

  • 准备好workspace
    • 原始素材(视频/照片)
    • 目标素材(视频/照片)
  • 安装deepfacelab
    • 从git上下载即可
  • 提取脸部
    • 提取原始素材面部(如果是视频,需要先转换为多张图片)
    • 提取目标素材面部(如果是视频,需要先转换为多张图片)
  • 训练模型
    • 设置训练的一些参数,参数含义需要理解清楚
  • 转换输出
    • 首先进行图片融合
    • 其次将融合后的图片转换为视频

上述过程按照流程走都挺顺利的,到了转换输出这一步骤的第二步出现问题:

Unknown encoder 'libx264'

问题出在ffmpeg包上,没有编码器,查找相关的资料:

https://stackoverflow.com/questions/9764740/unknown-encoder-libx264

按照以下流程走了一遍,还是不通:

20190917160307838

最终放弃,从头开始捋一遍。在main.py函数中调用了ffmpeg,是python版本的,之前按照requrest.txt安装了,不能正常使用,原因在于调用的时候出现的配置如下:

--disable-libx264

disable-libx264导致无法找到编码器,卸载后重新安装,使用conda在虚拟环境中安装一遍:

conda install ffmpeg -c conda-forge

重新运行,成功运行将图片转成视频:

-dir ../workspace/yc_dst/
Enter FPS ( ?:help skip:fullfps ) : fullfps
0
Output image format? ( jpg png ?:help skip:png ) : jpg
ffmpeg version 4.2 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 7.3.0 (crosstool-NG 1.23.0.449-a04d0)
  configuration: --prefix=/home/duanzhicheng/anaconda3/envs/deepface --cc=/home/conda/feedstock_root/build_artifacts/ffmpeg_1566210161358/_build_env/bin/x86_64-conda_cos6-linux-gnu-cc --disable-doc --disable-openssl --enable-avresample --enable-gnutls --enable-gpl --enable-hardcoded-tables --enable-libfreetype --enable-libopenh264 --enable-libx264 --enable-pic --enable-pthreads --enable-shared --enable-static --enable-version3 --enable-zlib --enable-libmp3lame
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/data/duanzhicheng/DeepFaceLab/workspace/39435.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.58.101
  Duration: 00:00:10.03, start: 0.000000, bitrate: 580 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 480x640, 541 kb/s, 24 fps, 24 tbr, 12288 tbn, 96 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 48 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
Press [q] to stop, [?] for help

可以看到配置文件变成

--enable-libx264

整个过程正常运行,踩坑完毕。

参考

目录
相关文章
|
存储
字符数组的初始化
在编程中,字符数组是用来存储一系列字符的变量类型。字符数组通常用于存储字符串,字符串是字符的序列。在使用字符数组之前,我们需要对其进行初始化,以分配内存空间并设置初始值。下面将详细介绍字符数组的初始化方法,并附上相应的代码示例。
244 2
|
缓存 并行计算 C++
实践教程|旋转目标检测模型-TensorRT 部署(C++)
实践教程|旋转目标检测模型-TensorRT 部署(C++)
364 0
|
Windows
关于 Qt设置置顶窗口,透明部分显示黑色底色(已设置透明窗口) 的解决方法
关于 Qt设置置顶窗口,透明部分显示黑色底色(已设置透明窗口) 的解决方法
关于 Qt设置置顶窗口,透明部分显示黑色底色(已设置透明窗口) 的解决方法
|
6月前
|
人工智能 搜索推荐 图形学
ChatAnyone:阿里通义黑科技!实时风格化肖像视频生成框架震撼发布
阿里巴巴通义实验室推出的ChatAnyone框架,通过高效分层运动扩散模型和混合控制融合技术,实现高保真度、自然度的实时肖像视频生成。
244 13
ChatAnyone:阿里通义黑科技!实时风格化肖像视频生成框架震撼发布
|
7月前
|
存储 前端开发 区块链
基于区块链的慈善捐赠平台:透明与信任的未来
基于区块链的慈善捐赠平台:透明与信任的未来
345 24
|
图形学
【用unity实现100个游戏之18】从零开始制作一个类CSGO/CS2、CF第一人称FPS射击游戏——基础篇2(附项目源码)
【用unity实现100个游戏之18】从零开始制作一个类CSGO/CS2、CF第一人称FPS射击游戏——基础篇2(附项目源码)
273 0
|
Shell Windows
vscode添加gitbash终端(最新)
vscode添加gitbash终端(最新)
839 1
|
Ubuntu Shell
ubuntu卸载conda
ubuntu卸载conda
1017 1
|
编解码 分布式计算 网络协议
FFmpeg常用命令行讲解及实战一(一)
FFmpeg常用命令行讲解及实战一
456 0