国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ffmpeg——同時剪輯多個視頻并合并

這篇具有很好參考價值的文章主要介紹了ffmpeg——同時剪輯多個視頻并合并。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

基本語法

所用的ffmpeg的語法:

1.剪輯單個視頻

ffmpeg -i [2021-11-24-1-2.mp4] -vcodec copy -acodec copy -ss [00:00:00] -to [00:00:05] [output/p3.mp4][ ]中三個參數(shù)依次為:剪輯視頻源文件;第一個時間為剪輯的起始時間;第二個時間為視頻持續(xù)的時間長度; 剪輯好的文件名

2.合并視頻片段

ffmpeg -f concat -safe 0 -i [cutfiles.txt] -c copy [output_all.mp4]參數(shù)一為合并文件的目錄txt,參數(shù)二為合并后的文件名。

功能需求

本次記錄如何使用ffmpeg對多路視頻按照不同時刻區(qū)間進行一次性快速剪輯,同時合成剪輯片段。

首先準備好要剪輯的視頻文件:

ffmpeg合并多個mp4,ffmpeg,音視頻

以及需要剪輯的時間片段,采用以下形式:

ffmpeg合并多個mp4,ffmpeg,音視頻

其中times的value可以是xx:xx:xx-xx:xx:xx或者?xx:xx-xx:x

代碼實現(xiàn)

test.py:

# coding=utf-8
import os, re

#剪輯參數(shù),時間可以為4:25-4:29 或者00:04:25-00:04:29 注意字符格式
v1 = {
    'name': '2728',
    'times': ['4:25-4:29' , '13:28-13:37',]
}

v2 = {
    'name': '2906',
    'times': ['4:50-4:55' , '10:37-10:42',]
}

v3 = {
    'name': '2915',
    'times': ['1:38-1:54' , '5:00-5:06' , '6:32-6:39', '8:36-8:43', '12:00-12:06', ]
}

v4 = {
    'name': '3100',
    'times': ['1:40-1:46','4:23-4:26', '5:29-5:34', '7:10-7:17', '9:54-10:03','12:00-12:07',]
}

v5 = {
    'name': '3101',
    'times': ['15:14-15:20',]
}

# 剪輯單個視頻
def cut_video(source_file, begin, continuous, output_file):
    # []中三個參數(shù)依次為: 剪輯視頻源文件  第一個時間為剪輯的起始時間  第二個時間為視頻持續(xù)的時間長度 剪輯好的文件名
    # ffmpeg -i [2021-11-24-1-2.mp4] -vcodec copy -acodec copy -ss [00:00:00] -to [00:00:05] [output/p3.mp4]
    ffmpeg_com = 'ffmpeg -i ' + source_file + ' -vcodec copy -acodec copy -ss ' + begin + ' -t ' + continuous + ' ' + output_file
    os.system(ffmpeg_com)

# 循環(huán)剪輯一個視頻中的不同片段
def cut_videos(videos_info):
    #剪切時間
    time_lines = videos_info['times']
    #所屬視頻文件名
    file_name = videos_info['name']
    for i in range(len(time_lines)):
        time_line = time_lines[i]
        begin, continuous = get_time_parm(time_line)
        #剪切的初始視頻     路徑要對應上自己的文件路徑!
        source_file = './'+file_name + '.mp4'
        #輸出的視頻文件(存入文本中,后續(xù)用于合成該文本那種的所有文件對應的片段)
        output_file = './output/' + file_name + '-p' + str(i) + '.mp4'
        f1 = open('cutfiles.txt', 'a+')
        f1.write('file ' + "'"+output_file+"'" + '\n')
        f1.close()
        cut_video(source_file, begin, continuous, output_file)

# 將時間格式轉換為秒數(shù)    02:48->168 或 2:48->168 或 01:12:11->4331 或 1:12:11->4331
def time_str_2_seconds(time_str):
    # print('time_str_2_seconds get time_str->',time_str)
    time_list = time_str.split(':')
    if len(time_list)==2:
        return int(time_list[0]) * 60 + int(time_list[1])
    elif len(time_list)==3:
        return int(time_list[0]) * 3600 + int(time_list[1]) * 60 + int(time_list[2])

# 輸入秒數(shù)轉換成標準的時間參數(shù)  30 -> 00:00:30   8126->02:15:26
def seconnds_2_time(seconds):
    h=int(seconds/3600)
    if h>=0 and h<10:
        H="0"+str(h)
    else:
        H=str(h)
    a=seconds%3600
    m=int(a/60)
    if m>=0 and m<10:
        M="0"+str(m)
    else:
        M=str(m)
    s=a%60
    if s>=0 and s<10:
        S="0"+str(s)
    else:
        S=str(s)
    return H+":"+M+":"+S

# 將輸入的 2:48-2:55格式的時間 --》 轉換成ffmpeg所需的 開始時間00:02:28 和持續(xù)時間00:00:07的格式
def get_time_parm(time_parm):
    # 1 拆分  2:48-2:55 =》   2:48 和  2:55
    m = re.match(r'^([0-9]*:[0-9]*)-([0-9]*:[0-9]*)', time_parm)
    begin_parm = m.group(1)  # 2:48
    end_parm = m.group(2)  # 2:55

    # 2 計算持續(xù)時間   2:48 和  2:55 =》 00:00:07
    # 2.1 全換成秒
    begin_int = time_str_2_seconds(begin_parm)  # 168
    end_int = time_str_2_seconds(end_parm)  # 175
    print(begin_int,end_int)
    # 2.2 7秒 =》 00:00:07
    continuous_int = end_int - begin_int  # 7
    continuous = seconnds_2_time(continuous_int)  # 00:00:07
    # 3 2:48=>00:02:48
    # 3.1 2:48=>168
    seconds_begin = time_str_2_seconds(begin_parm)
    # 3.2 168=>00:02:48
    begin = seconnds_2_time(seconds_begin)
    return [begin, continuous]

#合并剪輯好的視頻
def concat_videos():#參數(shù)一為合并文件的目錄txt,參數(shù)二為合并后的文件名
    ffmpeg_command = 'ffmpeg -f concat -safe 0 -i cutfiles.txt -c copy output_all.mp4'
    os.system(ffmpeg_command)

if __name__ == "__main__":
    #建立文件夾存放剪輯結果
    outpath='./output/'
    if not os.path.exists(outpath):
        os.mkdir(outpath)

    #循環(huán)剪輯多路視頻
    list=[v1, v2, v3, v4, v5,]
    for v in list:
        print(v)
        cut_videos(v)
    #合并視頻
    concat_videos()

效果展示

ffmpeg合并多個mp4,ffmpeg,音視頻
ffmpeg合并多個mp4,ffmpeg,音視頻
ffmpeg合并多個mp4,ffmpeg,音視頻

ffmpeg合并多個mp4,ffmpeg,音視頻

原文?ffmpeg--同時剪輯多個視頻并合并_ffmpeg合并多個視頻_小屋*的博客-CSDN博客

★文末名片可以免費領取音視頻開發(fā)學習資料,內容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音視頻學習路線圖等等。

見下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

?文章來源地址http://www.zghlxwxcb.cn/news/detail-603581.html

到了這里,關于ffmpeg——同時剪輯多個視頻并合并的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 「Python|音視頻處理|場景案例」如何使用ffmpeg下載m3u8視頻到本地并保存成mp4

    本文主要介紹如何使用ffmpeg批量下載視頻到本地并保存成指定格式。 當我們希望將網(wǎng)頁上的視頻下載到本地的時候,我們可能獲取到的視頻地址是指向 .m3u8 格式的,當視頻多的時候,手動下載并使用工具轉換格式就顯得工作量過大。 ffmpeg 是一個強大的音視頻處理工具,具體

    2024年02月16日
    瀏覽(34)
  • ffmpeg把RTSP流分段錄制成MP4,如果能把ffmpeg.exe改成ffmpeg.dll用,那音視頻開發(fā)的難度直接就降一個維度啊

    ffmpeg把RTSP流分段錄制成MP4,如果能把ffmpeg.exe改成ffmpeg.dll用,那音視頻開發(fā)的難度直接就降一個維度啊

    比如,原來我們要用ffmpeg錄一段RTSP視頻流轉成MP4,我們有兩種方案: 方案一:可以使用以下命令將rtsp流分段存儲為mp4文件 ffmpeg -i rtsp://example.com/stream -vcodec copy -acodec aac -f segment -segment_time 3600 -reset_timestamps 1 -strftime 1 output_%Y-%m-%d_%H-%M-%S.mp4 方案二:可以直接調用ffmpeg庫avcode

    2024年02月10日
    瀏覽(36)
  • 輕松轉換TS視頻為MP4,實現(xiàn)優(yōu)質視頻剪輯體驗

    輕松轉換TS視頻為MP4,實現(xiàn)優(yōu)質視頻剪輯體驗

    如果你是一個視頻剪輯愛好者,你一定會遇到各種視頻格式之間的轉換問題,特別是將TS視頻轉換為MP4格式。別擔心,我們的視頻剪輯軟件將為你提供最簡單、高效的解決方案! 首先第一步,我們要進入媒體夢工廠主頁面,在板塊欄里選擇“智能轉碼”板塊 第二步,在進入板

    2024年02月13日
    瀏覽(23)
  • ffmpeg ts列表合并為mp4

    操作系統(tǒng):ubuntu 注意事項: 1.ts文件順序必須正確,也就是下一幀的dst和pst要比上一幀的大,否則會報錯 2.codecpar-codec_tag要設置為0,否則報錯Tag [27][0][0][0] incompatible with output codec id ‘27’ (avc1) 3.設置output的max_streams數(shù)目,默認是1000,超過此數(shù)目就會報錯

    2024年02月13日
    瀏覽(19)
  • 視頻剪輯:視頻轉碼實用技巧,批量將MP4轉為MP3音頻

    視頻剪輯:視頻轉碼實用技巧,批量將MP4轉為MP3音頻

    隨著數(shù)字媒體設備的普及,視頻和音頻文件已成為日常生活中的重要組成部分。有時,可能要將MP4視頻文件轉換為MP3音頻文件,以提取其中的音頻內容或者進行其他處理。這是耗費時間的任務,那要如何操作呢?本文詳解云炫AI智剪如何將視頻批量轉碼的技巧,批量將MP4文件

    2024年02月05日
    瀏覽(25)
  • 視頻轉碼:掌握mp4視頻格式轉FLV視頻的技巧,視頻批量剪輯方法

    視頻轉碼:掌握mp4視頻格式轉FLV視頻的技巧,視頻批量剪輯方法

    在多媒體時代,視頻格式的轉換成為一種常見的需求。把MP4格式轉換為FLV格式,F(xiàn)LV格式的視頻文件通常具有較小的文件大小,同時保持了較好的視頻質量。批量剪輯視頻的方法能大大提高工作效率。下面來看云炫AI智剪如何進行MP4到FLV的轉碼,如何批量剪輯視頻的方法。 轉碼

    2024年01月19日
    瀏覽(32)
  • 【Python小項目之Tkinter應用】【實用工具】.MP4格式文件轉換.GIF文件轉換器大優(yōu)化,實現(xiàn)多視頻上傳功能,多個視頻同時轉換為GIF,并為每個視頻進度分配進度條等相關信息
  • 音視頻八股文(10)-- mp4結構

    音視頻八股文(10)-- mp4結構

    mp4?件格式?被稱為MPEG-4 Part 14,出?MPEG-4標準第14部分 。它是?種多媒體格式容器,?泛?于包裝視頻和?頻數(shù)據(jù)流、海報、字幕和元數(shù)據(jù)等。(順便?提,?前流?的視頻編碼格式AVC/H264 定義在MPEG-4 Part 10)。 mp4?件由box組成,每個box分為Header和Data。其中Header部分包含了

    2024年02月02日
    瀏覽(34)
  • Qt/C++音視頻開發(fā)46-音視頻同步保存到MP4

    用ffmpeg單獨做視頻保存不難,單獨做音頻保存也不難,難的是音視頻同步保存到MP4中,重點是音視頻要同步,其實這也不難,只要播放那邊音視頻同步后的數(shù)據(jù),寫入到文件即可。最難的是在播放過程中不斷隨機的切換播放進度,而且還會暫停播放、暫停錄制的情況出現(xiàn),這

    2024年02月17日
    瀏覽(39)
  • 合并多個 .ts 文件為單個 .mp4 解決方案

    合并多個 .ts 文件為單個 .mp4 解決方案

    ?? 概要: 現(xiàn)在的視頻網(wǎng)站采用的是流媒體傳輸協(xié)議,即把一個完整的視頻切分為多個小片段,這些片段就是以 .ts 為后綴的視頻文件。分片下載需要一個索引文件記錄所有分片的網(wǎng)絡地址,而這個索引文件就是 .m3u8 。 前段時間我在用 .m3u8 下載器下載電影的時候出現(xiàn)了問題

    2024年02月12日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包