ffmpeg转换视频编码

Posted xzh-personal-issue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ffmpeg转换视频编码相关的知识,希望对你有一定的参考价值。

下载ffmpeg

官网下载压缩包。


关键的是三个exe

使用ffmpeg

cmd进入到三个exe的存放路径下,或者把三个exe的存放路径添加到系统路径。
输入指令ffmpeg -i original_video.mp4 -vf scale=640:360 result_video.mp4 -hide_banner
640*360可以修改成想要的尺寸。

python使用ffmpy

pip3下载pip3 install ffmpy
下载后找不到ffmpy的module的话需要手动添加

import sys
sys.path.append("C:\\\\Users\\\\123\\\\anaconda3\\\\Lib\\\\site-packages")
from ffmpy import FFmpeg

示例代码

import os
import uuid
import sys
sys.path.append("C:\\\\Users\\\\123\\\\anaconda3\\\\Lib\\\\site-packages")
from ffmpy import FFmpeg
# 调整视频大小
def change_size(video_path: str, output_dir: str, width: int, height: int, bit_rate=2000):
    ext = os.path.basename(video_path).strip().split(\'.\')[-1]
    if ext not in [\'mp4\']:
        raise Exception(\'format error\')
    _result_path = os.path.join(
        output_dir, \'.\'.format(
            uuid.uuid1().hex, ext))
    ff = FFmpeg(inputs=\'\'.format(video_path): None, outputs=
        _result_path: \'-s * -b k\'.format(width, height, bit_rate))
    print(ff.cmd)
    ff.run()
    return _result_path
if __name__ == \'__main__\':
    print(change_size(\'C:/Users/123/Desktop/video_20230501_182239.mp4\', \'C:/Users/123/Desktop\', 960, 540))

需要注意ffmpy也会调用ffmpeg,所以上面的3个exe也要放在同一路径或者把存放路径放在系统路径中。

参考链接

参考链接一
参考链接二
参考链接三

如何使用 ffmpeg 对 H.264 中的视频进行编码?

【中文标题】如何使用 ffmpeg 对 H.264 中的视频进行编码?【英文标题】:How to use ffmpeg to encode video in H.264? 【发布时间】:2016-09-01 04:23:48 【问题描述】:

我已经从https://github.com/FFmpeg/FFmpeg 安装了 ffmpeg 3.0,我正在尝试将使用 mepeg4 第 2 部分编码的视频转换为 H264,但我得到了Unknown encoder 'libx264' 错误

这是我的命令:(我尝试了 h264、x264、libx264,它们都不起作用)

ffmpeg -i Fashion.divx -acodec aac -vcodec libx264  out.mp4

我查看了支持的编解码器列表

Codecs:
 D..... = Decoding supported
 .E.... = Encoding supported
 ..V... = Video codec
 ..A... = Audio codec
 ..S... = Subtitle codec
 ...I.. = Intra frame-only codec
 ....L. = Lossy compression
 .....S = Lossless compression
 -------
 D.VI.. 012v                 Uncompressed 4:2:2 10-bit

这里是h264:

 D.V.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vdpau)

我用的是ffmpeg 3.0,从那个列表看,好像不支持h264编码,只支持解码h264吧?

我尝试通过本指南启用 h.264 How to quickly compile FFmpeg with libx264 (x264, H.264)

./configure --enable-gpl --enable-libx264

我明白了 ./configure --enable-gpl --enable-libx264

ERROR: libx264 not found

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.log" produced by configure as this will help
solve the problem.

我应该怎么做才能使 h.264 中的视频编码工作?

【问题讨论】:

您链接的快速编译指南中的第 1 步:编译 x264 是的,我刚发现需要单独安装libx264,谢谢。 【参考方案1】:

好的,我刚发现需要单独安装libx264,命令如下

sudo apt-get install yasm libvpx. libx264.

确实在安装 libx264 后,我得到了

 DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vdpau ) (encoders: libx264 libx264rgb )

【讨论】:

【参考方案2】:

呵呵,你已经回答了自己的问题:

这里是h264:

 D.V.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vdpau)

如清单所示,编码器的名称是h264,编解码器的名称可以在大括号之间找到。

所以你的命令应该是这样的:

ffmpeg -i Fashion.divx -acodec libfaac -vcodec h264  out.mp4

我的 FFmpeg 版本有 libx264,所以 -codecs 选项打印我这个:

DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vdpau ) (encoders: libx264 libx264rgb )

如您所见,我可以使用-vcodec libx264-vcodec libx264rgb

【讨论】:

以上是关于ffmpeg转换视频编码的主要内容,如果未能解决你的问题,请参考以下文章

我想用ffmpeg命令行转换一个视频文件,视、音频编码格式不变,只是将画面旋转90度,请问命令行该如何写?

ffmpeg 将视频帧转换成jpgpng等图片

FFmpeg转码流程详解

Qt音视频开发29-ffmpeg中x264/x265编码库支持

FFMPEG常用命令-格式转换-持续更新中

如何使用 ffmpeg 对 H.264 中的视频进行编码?