首页 > 其他分享 >使用ffmpeg 插入片头片尾(指定时长)

使用ffmpeg 插入片头片尾(指定时长)

时间:2024-04-18 17:36:55浏览次数:30  
标签:insert 片头 ffmpeg opening 片尾 ts ionice zerolatency

功能需求:

1、插入的片头可以时图片或视频。

图片格式暂时未jpg

视频格式为mp4。

可能存在的问题:

1)、图片需要先转换成ts文件:增加视频和音频。

2)、mp4文件可能无声音。

3)、片头片尾的参数与录制视频的参数不匹配:导致连接过程可能会黑屏。

 

 

首先参数统一

1、如何加快编码 h264 

libx264

-c:v libx264 -preset ultrafast -tune zerolatency -crf 23 -preset ultrafast 可以加快编码速度。 -tune zerolatency 启用zerolatency调整,降低编码延迟 -crf 23 :调整视频质量   2、如何生成静音视频 -f  lavfi -t 5 -i anullsrc

 

3、如何判断一个mp4文件是否没有声音。

result_opening_audio=$(ffprobe -v error -select_streams a -show_entries stream=codec_name -of default=nw=1:nk=1  $insert_opening)  if [[ -n $result_opening_audio ]]  ; then            echo "have audio"            ionice -c 1 -n 0 ffmpeg -y -ss 0 -i $insert_opening -vf "scale=$insert_width:$insert_height,format=yuv420p" -r 15  -c:v libx264   -preset ultrafast -tune zerolatency -crf 23   -c:a aac -b:a 96k -ar 48000 -t $insert_opening_duration  ${j}/insert_opening_1.ts & else            echo "only video"            ionice -c 1 -n 0 ffmpeg -y -ss 0 -i $insert_opening  -f lavfi -i anullsrc -vf "scale=$insert_width:$insert_height,format=yuv420p" -r 15  -c:v libx264   -preset ultrafast -tune zerolatency -crf 23   -c:a aac -b:a 96k -ar 48000 -t $insert_opening_duration  ${j}/insert_opening_1.ts & fi

4、如何让一张图片指定时长的视频

ionice -c 1 -n 0 ffmpeg  -y -framerate 15 -loop 1 -i $insert_opening  -f lavfi  -t $insert_opening_duration -i anullsrc -vf "scale=$insert_width:$insert_height,format=yuv420p"  -r 15 -c:v libx264 -preset ultrafast -tune zerolatency -crf 23  -c:a aac -ar 48000   -shortest ${j}/insert_opening_1.ts &

 

5、如何用ffmpeg -f concat 拼接ts文件:

ionice -c 1 -n 0 ffmpeg -y -f concat -i $j/tslists.txt  -c copy  ${v}_MP4/$filename.mp4 &   注意点:
1)、首个ts文件:视频和声音都得具备,否则,后面视频不正常。 2)、不同类型的ts文件连接时,参数要保持一致:分辨率,等。如果分辨率不一致,连接过程,用vlc看会是黑屏。   连接过程中的时间戳不一致不要紧。   3)tslist.txt 格式 ffmpeg -y -f concat file '0.ts' file '1.ts'  ffmpeg -y -f concat -safe 0 那格式就要变:变成绝对路劲 file '/record/0.ts' file '/record/1.ts'

 

 

其他技巧1:重新编码,就不用考虑其他问题了,但是时间很慢,不推荐
ionice -c 1 -n 0 ffmpeg -y -f concat  -segment_time_metadata 1 -i ${j}/tslists_end.txt  -vf select=concatdec_select -af aselect=concatdec_select,aresample=async=1   ${j}/insert_ending.ts

其他技巧2:如何重新设置一个文件开始时间点

ffmpeg -y -i input.ts -c copy -muxdelay 0 -muxpreload 0 output.ts

 

讲解FFMPEG H264/H265 编码延迟问题_ffmpeg 解码延迟-CSDN博客

一些简单详细的操作看下面这个博客:

ffmpeg常用命令_ffmpeg h246-CSDN博客

标签:insert,片头,ffmpeg,opening,片尾,ts,ionice,zerolatency
From: https://www.cnblogs.com/yzrStart/p/18143920

相关文章

  • 使用 ffmpeg 为视频文件添加封面
    全程使用CHATGPT4提供帮助通常而言,电脑上的资源管理器会使用视频的第一帧来作为缩略图,如果视频文件中有封面存在,则会使用封面作为文件缩略图(Windows自带的资源管理器是这样,具体要看资源管理器的实现)与GPT4沟通后,发现可以使用ffmpeg为视频添加封面。原理是为文件添加一......
  • FFmpeg开发笔记(十四)FFmpeg音频重采样的缓存
    ​FFmpeg在很多地方都运用了缓存机制,比如《FFmpeg开发实战:从零基础到短视频上线》一书的“3.3.2 对视频流重新编码”介绍了编解码的数据缓存,不单是视频编码过程和视频解码过程有缓存,甚至连音频重采样都用到了缓存。也就是说,重采样函数swr_convert一次只会输出指定长度的音频数......
  • simple_ffmpeg_decoder(ffmpeg的解码器)
    代码#include<stdio.h>#define__STDC_CONSTANT_MACROS//因为ffmpeg是C语言编写的所以要继承C语言的语法格式extern"C"{#include"libavcodec/avcodec.h"#include"libavformat/avformat.h"#include"libswscale/swscale.h"};intmain(i......
  • FFmpeg开发笔记(十三)Windows环境给FFmpeg集成libopus和libvpx
    ​MP4是最常见的视频封装格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“1.2.3 自行编译与安装FFmpeg”介绍了如何给FFmpeg集成x264和x265两个库,从而支持H.264和H.265两种标准的编解码。视频的封装格式除了悠久的MP4和ASF之外,还有较新的WebM格式,该格式的音频编码主要采......
  • 视频处理的利器,ffmpeg-python库详解与应用示例
    左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。公众号:一点sir,关注领取python编程资料在数字媒体的时代,视频处理成为了一项重要的技能。无论是剪辑、转码、还是添加特效,都需要强大的工具来处理视频素材。Python作为一门功能强大的编程语言,在视频处理领域也有着广......
  • centos7中ffmpeg的安装方法
    Linux系统安装ffmpeg&升级ffmpeg一、介绍多媒体视频处理工具FFmpeg有非常强大的功能,包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。由于最近要处理音视频格式转换问题,因此需要安装、升级ffmpeg,下面来记录一下踩坑过程。 二、安装ffmpeg1、下载并解压ffmpeg......
  • FFmpeg常用功能
    1.转码视频格式:ffmpeg-iinput.mp4output.avi上述命令将输入的MP4视频文件转换为AVI格式。2.压缩视频文件:ffmpeg-iinput.mp4-vcodeclibx264-crf23output.mp4 该命令使用libx264视频编解码器对输入的MP4文件进行压缩,并将压缩后的视频保存为MP4格式。CRF值(Cons......
  • 基于 FFmpeg 的自定义 Media Extractor(2):自定义 Extractor 的实现方法
    文章目录前言C/NDKAPI简介C++API简介实现自定义Extractor编译自定义Extractor参考资料前言在上一篇文章中,简要介绍了Extractor组件选择及创建过程。本文将继续基于Android11探索自定义Extractor的实现,及其接入到Android多媒体框架中的方法。C/NDKA......
  • ffmpeg对视频进行裁减crop
    ffmpeg-i input.mp4 -r 50 -vf crop=800:900:150:200 output.mp4input.mp4:你需要裁减的视频50:裁减之后的视频的帧率crop=800:900:150:200:150:200表示的是从视频的左上角(150,200)这个位置开始对视频进行裁减。其中800表示裁减后的视频的w是800,900表示h。out......
  • FFmpeg 7.0 “Dijkstra” 发布
    FFmpeg7.0“Dijkstra”发布来源:OSCHINA编辑: 白开水不加糖2024-04-0710:11:00 2国产数据库圈,为啥那么多水货?”FFmpeg7.0“Dijkstra”现已发布。此版本以荷兰计算机科学家EdsgerW.Dijkstra的名字命名,一些值得注意的变化包括原生VVC解码器(目前处于......