linux离线状态下将视频mp4格式转换m3u8

这篇具有很好参考价值的文章主要介绍了linux离线状态下将视频mp4格式转换m3u8。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

因为业务需求,python文件生成的视频为MP4格式,无法在前端浏览器正常播放,需切换m3u8格式,但因为服务器是没有网络的,因袭需要在离线状态下进行完成。

1.离线安装ffmpeg

看网上许多教程,ffmpeg可完成视频格式的转换,首先进行离线安装。

参考博文:https://blog.csdn.net/weixin_45181398/article/details/126590902

因为ffmpeg的安装,需要用到yasm安装包,因此没有安装yasm的需要先进行安装。

离线安装yasm

[yasm-release]

下载安装包,传到服务器上进行解压安装

# 解压安装
tar -zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure --prefix=/usr/local/yasm
# 编译安装
make && make install
# 配置环境变量
export PATH=$PATH:/usr/local/yasm/bin
# 执行配置文件,让环境变量生效
source /etc/profile
source ~/.bashrc

安装ffmpeg

安装包下载路径,传到服务器进行加压安装。

#1. 解压
tar -zxvf ffmpeg-4.4.tar.gz
# 2.安装
cd ffmpeg-4.4
./configure --enable-share --prefix=/usr/local/ffmpeg
# 编译安装
make && make install
# 完成安装之后检查运行
cd /usr/local/ffmpeg/bin
ldd ffmpeg
#如果出现not found,需要进行环境变量的配置

# 修改环境变量,首先修改ffmpeg的环境变量,将如下内容加到export PATH=$PATH:/usr/local/yasm/bin后面
export PATH=$PATH:/usr/local/yasm/bin:/usr/local/ffmpeg/bin
# 修改lib的环境变量,将如下内容加到/etc/profile以及/root/.bashrc中去
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib/:$LD_LIBRARY_PATH
# 执行配置文件使环境变量生效即可,再检查运行结果即可
ldd ffmpeg
./ffmpeg

ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609
  configuration: --enable-shared --prefix=/usr/local/ffmpeg
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'

以上步骤,ffmpeg安装完成,也可输入ffmpeg -version进行测试

ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
configuration: --enable-shared --prefix=/usr/local/ffmpeg
libavutil      56. 70.100 / 56. 70.100
libavcodec     58.134.100 / 58.134.100
libavformat    58. 76.100 / 58. 76.100
libavdevice    58. 13.100 / 58. 13.100
libavfilter     7.110.100 /  7.110.100
libswscale      5.  9.100 /  5.  9.100
libswresample   3.  9.100 /  3.  9.100

2.使用ffmpeg进行格式转换

命令行使用:

ffmpeg -i ./res.mp4 -c:v h264 -flags +cgop -g 30 -hls_time 5 -hls_list_size 0 -hls_segment_filename index%3d.ts res.m3u8

也可写在python文件中

ffmpeg ='ffmpeg -i {} -profile:v baseline -level 3.0 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls {}'.format(vedio_name, to_path)
f = os.popen(ffmpeg)
   
ffmpeg2 = 'ffmpeg -i {} -vcodec copy -acodec copy -absf aac_adtstoasc {}'.format(to_path, vedio_name)
f2 = os.popen(ffmpeg2)

但是出现报错:Unknown encoder ‘h264’
linux离线状态下将视频mp4格式转换m3u8
使用下述命令运行,报错为 Unknown encoder ‘libx264’

ffmpeg -i res.mp4 -c:v libx264 -hls_time 10 -hls_list_size 0 -f hls output.m3u8

看到解决方法是,需要安装x264。

3.离线安装x264

参考链接:https://blog.csdn.net/djrm11/article/details/106258763

git clone git://git.videolan.org/x264.git
cd x264
#查看帮助信息
./configure --help
./configure --enable-shared --enable-static --disable-asm
make
make install
./configure --help 

出现报错 :/bin/sh^M: 坏的解释器: 没有那个文件或目录,找到解决方案:在终端使用命令:sed -i ‘s/\r$//’ echo.sh (将echo.sh替换为自己的脚本文件名) 报这个错的文件 都执行以下这条命令

参考链接:https://www.cnblogs.com/sakura404/p/6824936.html

make 编译报错:x264.c: 在函数‘help’中:x264.c:506:21: 错误:‘X264_VERSION’未声明(在此函数内第一次使用) X264_BUILD, X264_VERSION
linux离线状态下将视频mp4格式转换m3u8
解决方案:
运行 ./version.sh

./version.sh
#define X264_REV 3106
#define X264_REV_DIFF 0
#define X264_VERSION " r3106 eaa68fa"
#define X264_POINTVER "0.164.3106 eaa68fa"

#!/bin/sh

如果还不行的可以使用下面参数配置
./configure --enable-shared --enable-static --disable-opencl --enable-pic --disable-asm

又出现一个问题

./ffmpeg: error while loading shared libraries: libx264.so.164: cannot open shared object file: No such file or directory

linux离线状态下将视频mp4格式转换m3u8

是因为找不到libx264.so.164
解决方案:

vim /etc/ld.so.conf
#加上x264的lib路径,我的是/usr/local/lib 保存退出
/usr/local/lib
#刷新配置
ldconfig
# 执行不出错啦!

若出现: ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory

vim /etc/ld.so.conf
/usr/local/ffmpeg/lib

终于终于解决了!!!
linux离线状态下将视频mp4格式转换m3u8

linux离线状态下将视频mp4格式转换m3u8

每次重启后,执行ffmpeg找不到,需要重新配置环境变量。
问题解决:
将/usr/local/ffmpeg/bin文件夹下的ffmpeg文件复制到/usr/local/bin文件夹下。
然后执行chmod -R 777 /usr/local/bin授权即可。

其他参考 https://blog.csdn.net/Dontla/article/details/122318332文章来源地址https://www.toymoban.com/news/detail-402247.html

到了这里,关于linux离线状态下将视频mp4格式转换m3u8的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MP4视频如何转OGV视频格式?视频格式转换的方法

    一,什么是OGV视频格式 OGV是一个使用OGG开源格式的容器。 OGG不受软件专利的限制,这是其创建的主要目标之一。 OGV格式用于存储带或不带音频的视频流,而视频流又可以用Opus,Vorbis,Theora或Speex算法压缩。该格式用于在HTML5的帮助下在网页上播放视频内容 二,OGV视频应用场

    2024年04月12日
    浏览(48)
  • Flv格式视频怎么转MP4?视频格式转换方法分享

    FLV格式的视频是一种早期的视频格式,不支持更高的分辨率和比特率,这意味着视频的清晰度和质量受限制,无法很好地保留细节和质量,这种格式的视频已经逐渐被更高质量的视频格式所替代,例如MP4格式,不仅具有很好的兼容性,编辑起来也很方便,下面教大家几种flv转

    2024年02月13日
    浏览(55)
  • 视频格式网络地址转换视频到本地,获取封面、时长,其他格式转换成mp4

    使用ffmpeg软件转换网络视频,先从官网下载对应操作系统环境的包 注意:网络地址需要是视频格式结尾,例如.mp4,.flv 等 官网地址:Download FFmpeg      window包: linux包: 如果下载缓慢,下载迅雷安装使用下载。 解压缩后对应截图: window: linux: 在maven项目的pom.xml引入依赖包

    2024年02月03日
    浏览(50)
  • 视频如何转换成MP4格式?分享三个转换方法

    视频文件转换为MP4格式是一个常见的需求,因为MP4是广泛支持的视频格式之一,可以在各种设备上播放。在本文中,我将介绍三种不同的方法来将视频文件转换为MP4格式。 方法1:使用转换软件 转换软件是一种常见的将视频文件转换为MP4格式的方法。以下是使用转换软件的步

    2023年04月21日
    浏览(68)
  • 视频格式高效转换:MP4视频批量转MKV格式的方法

    随着数字媒体技术的不断发展,视频格式转换已经成为了我们日常工作中不可或缺的一部分。不同的视频格式适用于不同的场景和设备,因此将视频从一种格式转换为另一种格式往往是我们必须完成的任务。在本文中,我们将重点介绍如何运用云炫AI智剪高效地转换视频格式

    2024年02月08日
    浏览(54)
  • gif怎么转换成mp4格式视频

        gif怎么转换成mp4格式视频?GIF格式是一种广泛应用的公用图像文件格式标准,具有许多优势。它占用的内存较小,可以实现自动循环播放,并且兼容多个平台。然而,GIF格式也存在一些缺点。例如,它无法处理复杂的图像,且相对于其他格式,GIF的视频画质可能会受损。

    2024年02月10日
    浏览(54)
  • MP4格式视频怎么转mov格式?好用的视频格式转换方法分享

    MOV格式是苹果公司的专有格式,因此在苹果设备上播放MOV格式的视频时,兼容性更好,因此可以实现更高质量的视频。如果我们需要高质量的视频输出,将MP4转换为MOV格式可能是个好选择。那么怎么进行转换呢?给大家分享几种简单好用的视频格式转换方法,一起来了解下吧

    2024年02月16日
    浏览(53)
  • 手机里的视频怎么转换成MP4格式?简单的转换方法分享

    MP4格式是一种广泛使用的视频格式,几乎所有设备和操作系统都支持MP4格式的视频播放。无论是使用 iPhone、iPad、安卓手机、电视等各种设备,都可以播放 MP4 格式的视频。这种广泛的兼容性使得 MP4 成为一种非常方便的视频格式,我们可以随时随地观看自己喜欢的视频。然而

    2024年02月15日
    浏览(54)
  • 【音视频开发】FFmpeg转换与封装 I - MP4格式

    1 FFmpeg转换与封装 1.1 MP4格式转换 1.1.1 MP4格式标准         FFmpeg支持的媒体封装格式具有多样性与全面性,与此, 我们还可以使用FFmpeg来对媒体格式进行转换与封装 。 在互联网常见的格式中,跨平台最好的应该是 MP4 文件,因为 MP4 文件既可以在PC 平台的Flashplayer中播放,

    2024年02月08日
    浏览(78)
  • 怎么把avi文件转换成mp4视频格式,4个高能方法

           怎么把avi文件转换成mp4视频格式? 当您下载到avi格式的视频文件时,您可能会选择将其转换为MP4格式的文件。 avi是一种由微软开发的多媒体容器格式,尽管现在已经被认为是老旧的技术,但由于其简单易懂的开发API和Windows的通用性,仍被广泛使用。虽然avi格式视频

    2024年02月06日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包