使用concat协议进行拼接两个mp4视频,报错:“Found duplicated MOOV Atom. Skipped”。ffmpeg -i "concat:1.mp4|2.mp4" -c copy output.mp4
原理上是因为 concat协议,实际上就只是把两个视频直接拼接,把后一个视频直接贴到前一个视频后面而已,因此只会适用于ts和flv等一些格式。mp4格式整体有一层容器,需要先解开容器再对提取的视频流进行拼接。解决方法:创建一个list.txt文件如下:file '/path/1.mp4'
file '/path/2.mp4'
file '/path/3.mp4'
正常情况下载视频:ffmpeg -i m3u8-path -c copy OUTPUT.mp4
ffmpeg -i m3u8-path -vcodec copy -acodec copy OUTPUT.mp4
ffmpeg -i https://test.com/playlist.m3u8 -c copy OUTPUT.mp4
下载加密的 m3u8:1. playlist.m3u8的文件#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENC
场景现在很多高清视频都是MKV,但是Premiere等剪辑工具只支持 MP4 文件。可以使用 ffmpeg 不重新编码转换成MP4文件。等于文件复制的速度,非常快。MKV 介绍MKV 是Matroska的一种媒体文件,Matroska是一种新的多媒体封装格式,也称多媒体容器 (Multimedia Container)。它可将多种不同编码的视频及16条以上不同格式的音频和不同语言的字幕流封装到一个Matroska Media文件当中。MKV最大的特点就是能容纳多种不同类型编码的视频、音频及字幕流。mkv是一种后缀为MKV的视频文件频频出现在网络上,它可在一个文件中集成多条不同类型的音轨和字幕轨
一、常用命令
主要参数:
-i 设定输入流
-f 设定输出格式
-ss 开始时间
视频参数:
-b 设定视频流量(码率),默认为200Kbit/s
-r 设定帧速率,默认为25
-s 设定画面的宽与高
-aspect 设定画面的比例
-vn 不处理视频
-vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器
音频参数:
-ar 设定采样率
-ac 设定声音的Channel数
-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器
-an 不处理音频
二、常用功能
1. 视频格式转换
格式转换准确的说应该是视频容器转换
比如一个avi文
续接:https://javascript.net.cn/article?id=553
修改Nginx配置文件:
worker_processes 1;
error_log logs/error.log debug;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
application live {
live on;
}
application vod {
1. 查看机器上所有设备
ffmpeg -devices
ffmpeg version N-93466-g681957b88d Copyright (c) 2000-2019 the FFmpeg developers
built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
Devices:
D. = Demuxing supported
.E = Muxing supported
--
D avfoundation AVFoundation input device 「摄像头」
D la
使用ffmpeg推流的场景:
1. 我的机器配置烂死了,无法做到x264实时压制然后推流,我只想复制视频流放个片。
2. 我想在服务器上无人值守转播内容。
续接上篇文章:https://javascript.net.cn/article?id=551
ffmpeg -re -i 1.mp4 -vcodec copy -f flv rtmp://localhost/live
或者
ffmpeg -re -i 1.mp4 -vcodec copy -acodec copy
-b:v 800k -b:a 32k -f flv rtmp://localhost/liv
安装
在windows下由于官方已经编译好的nginx是不带nginx_rtmp_module的,故直接使用已经编译好的,
一个是github上的(https://github.com/illuspas/nginx-rtmp-win32)
一个是nginx for windows(http://nginx-win.ecsds.eu/download/nginx%201.7.12.1%20Lizard.zip,注意这是最后一个支持rtmp的版本,再高的非商业版本不会支持rtmp),nginx-rtmp-win32是一个较好的demo。
打开命令行,进入文件夹,启动nginx.exe。
!DOCTYPE html
html lang="en"
head
meta charset="UTF-8"
meta name="viewport" content="width=device-width, initial-scale=1.0"
meta http-equiv="X-UA-Compatible" content="ie=edge"
title Document /title
/head
body
script src="hls.js" /script
video
!doctype html
html
head
meta charset="utf-8"
title Video.js /title
link href="videojs/css/video-js.min.css" rel="stylesheet"
/head
body
div class="m"
video id="my-video" class="video-js" controls preload="auto" width="960" height="400" poster=""
data-setup="
所有标签