树莓派环境下使用python将h264格式的视频转为mp4
个人博客 地址:https://www.wenhaofan.com/a/20190430144809
下载安装MP4Box
命令行下执行以下指令安装MP4Box
sudo apt-get install gpac
代码
核心代码为使用 os.system 模块通过调用系统命令使用MP4Box将H264格式的视频转为MP4
import os
import random
import time
import ctcmsconf #初始化文件夹
def init_video_folder():
exist=os.path.exists(ctcmsconf.H264_PATH)
if not exist:
os.makedirs(H264_PATH)
exist=os.path.exists(ctcmsconf.MP4_PATH)
if not exist:
os.makedirs(ctcmsconf.MP4_PATH) #将h264视频转为mp4
def convert_to_mp4(source_path,target_path):
cmod='MP4Box -fps '+str(ctcmsconf.MP4_FPS)+' -add '+source_path+' '+target_path;
execute_state = os.system('MP4Box -fps '+str(ctcmsconf.MP4_FPS)+' -add '+source_path+' '+target_path);
print(cmod)
print(execute_state)
if execute_state==0:
return True
else:
return False #判断文件是否存在
def check_is_exist(path,suffix):
return os.path.exists(path+'.'+suffix) #生成mp4文件保存路径
def gen_mp4_filepath(filename=''):
if filename=='':
filename=gen_random_filename(ctcmsconf.MP4_PATH+'record-'+format_currrenttime('%Y%m%d%H%m%s'))
else:
filename=gen_random_filename(filename)
if check_is_exist(filename,'mp4'):
return gen_mp4_filepath(filename)
else:
return filename+'.mp4'
#生成h264文件保存路径
def gen_h264_filepath(filename=''):
if filename=='':
filename=gen_random_filename(ctcmsconf.H264_PATH+'record-'+format_currrenttime('%Y%m%d%H%m%s'))
else:
filename=gen_random_filename(filename)
if check_is_exist(filename,'h264'):
return gen_mp4_filepath(filename)
else:
return filename+'.h264' #生成随机文件名
def gen_random_filename(filename):
return filename+str(random.randint(0,10))
#格式化时间
def format_currrenttime(format='%Y-%m-%d %H:%M:%S'):
return time.strftime(format,time.localtime(time.time()))
ctcmsconf.py
H264_PATH='/home/pi/ctcms/record/h264/'; #将该路径修改为你本地h264文件的存储路径
MP4_PATH='/home/pi/ctcms/record/mp4/'; #将该路径修改为你本地mp4文件的存储路径
MP4_FPS=15; # FPS 视频帧率,该值越大视频所占空间也会越大,相应的会更流畅
树莓派环境下使用python将h264格式的视频转为mp4的更多相关文章
- Sublime Text3配置在可交互环境下运行python快捷键
安装插件 在Sublime Text3下面写代码感觉很不错,但是写Python的时候遇到了一些问题. 用Sublime Text3打开python文件,或者在Sublime Text3下写好pytho ...
- 4.1. 如何在Windows环境下开发Python
4.1. 如何在Windows环境下开发Python 4.1. 如何在Windows环境下开发Python 4.1.1. Python的最原始的开发方式是什么样的 4.1.1.1. 找个文本编辑器,新 ...
- Linux 环境下安装python相关
目录 Linux 环境下安装python相关 linux软件包管理工具之yum工具(如同pip3工具) yum源理解 下载阿里云的.repo仓库文件 ,放到/etc/yum.repos.d/ yum安 ...
- Centos7.4环境下搭建Python开发环境(虚拟机安装+python安装+pycharm安装)
目录 一.安装 Centos7.4虚拟机 二.安装 python3.6.7 三.安装 pycharm 一般情况下,大家都是在 Windows平台下进行 Python开发,软件安装和环境搭建都非常&qu ...
- 尚学python课程---11、linux环境下安装python注意
尚学python课程---11.linux环境下安装python注意 一.总结 一句话总结: 准备安装依赖包:zlib.openssl:yum install zlib* openssl*:pytho ...
- 尚学linux课程---10、linux环境下安装python
尚学linux课程---10.linux环境下安装python 一.总结 一句话总结: 直接在官网下载python的源码包即可,然后在linux下安装 linux下安装软件优先想到的的确是yum,但是 ...
- 从零开始Windows环境下安装python+tensorflow
从零开始Windows环境下安装python+tensorflow 2017年07月12日 02:30:47 qq_16257817 阅读数:29173 标签: windowspython机器学习te ...
- Docker环境下运行python+selenium+chrome
Docker环境下运行python+selenium+chrome docker运行时占用的资源非常少,而且能将环境进行有效的隔离,可以快速的进行部署,因此可以将docker与selenium结合实现 ...
- Win10 + VS2017 15.5.6 环境下解决 Python 3.6 环境无法刷新DB的问题
作为宇宙第一IDE,VS2017对Python的支持还算可以,虽然和PyCharm等Python专用IDE相比还有些差距,但是经过后续的更新升级,我相信VS2017将越来越完善.由于本人一直都是使用V ...
随机推荐
- 10-SpringMVC04
FreeMarker 1.入门案例 1. 导包:freemarker.jar 2. 需要创建模板文件的路径:src/main/resources/template 3. 创建一个模板对象:hello. ...
- 学习Sparql
一 . gstore--一种开源图数据库系统 https://www.docin.com/p-1951514687.html 二 . 使用 SPARQL 查询 RDF 数据 https://www.i ...
- C# ,数据导出到带有级联下拉框的模板(一,模板的级联功能)
一.首先解决如何做模板中增加级联功能 1,首先打开一个新的Excel文件,新增sheet,把分类保存在里面,如下图所示 2.回到sheet1,选中要增加下拉框的行(注意:请排除首行,首行是标题) 3. ...
- jQuery--dataTable 前端分页与后端分页 及遇到的问题
(1)区别 前端分页:一次性把所有数据全都放在前端,由前端进行处理:适合请求的数据量不大的情况 后端分页:服务器模式,所有的分页,搜索,排序等操作在服务器端完成,然后前端去请求数据:适合量大的情况 ( ...
- codewars--js--counting duplicates
题目描述: Count the number of Duplicates Write a function that will return the count of distinct case-in ...
- 【HDU - 1176 】免费馅饼 (逆dp)
免费馅饼 Descriptions: 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁 ...
- centos7安装Elasticsearch及Es-head插件详细教程(图文)
懒惰了很久,今天来写一下Elasticsearch在centos7上安装教程以及安装过程中可能出现的报错解决方式,有不对的地方,烦请各位看官多多指教! 一.ES安装 1.环境检查 确保有java环境, ...
- 多线程笔记 - Master-Worker
多线程的 Master-Worker 从字面上也是可以理解的. Master 相当于领导, 一个就够了, 如果是多个, 那么听谁的, 是个大问题. Master负责指派任务给 Worker. 然后对每 ...
- 零基础学到什么程度可以找一份web前端工作?
能找到一份前端开发工作,首先你起码得是一个合格的初级前端工程师.那么,什么是初级前端工程师?初级前端工程师都会做些什么?这个问题需要分为以下几个方面来说: 一.对应岗位的工作职责初级前端,主要负责产品 ...
- 源码浅析:InnoDB聚集索引如何定位到数据的物理位置,并从磁盘读取
索引结构概述: MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址.这与Oracle的索引结构相似,比较好理解.那么,常用的Innodb聚集索引结构是怎样的呢? InnoDB的数据文 ...