現在位置: 首頁 > Other > 正文

從影音平台上下載被分割的 *.ts 影片並合併起來

今天有一個業務需求是希望可以將公司放在影音平台上的影片下載回來,由於他並不是直接可以點右鍵下載的形式,所以記錄將過程記錄在此篇

 

花了一些時間解析了一下這個影音平台從影片上右鍵內容是可以解析到影片位址的,下載回來的是一個 index.m3u8

 

將 index.m3u8 打開可以看到裡面還包了兩個不同的 m3u8 位址

 

第一眼的認知是這是分為兩種解析度,然後再次將這兩個 m3u8 載回來看一下

 

發現裡面包了很多個 ts 檔案,原來這個影音平台是將影音分割為很多個 ts 小檔案處理,這個方式目前已經許多影音平台都採用這種方式來增加使用者瀏覽的速度。

 

那我們就必須將他一一載回來並且合併起來

直接寫一個簡單的 script

 

由於所有的檔案共有 165 個,所以批次把它載回來並且使用 cat 合併成 combined.ts

 

以上也分享於 github

 

文章連結: https://shazi.info/%e5%be%9e%e5%bd%b1%e9%9f%b3%e5%b9%b3%e5%8f%b0%e4%b8%8a%e4%b8%8b%e8%bc%89%e8%a2%ab%e5%88%86%e5%89%b2%e7%9a%84-ts-%e5%bd%b1%e7%89%87%e4%b8%a6%e5%90%88%e4%bd%b5%e8%b5%b7%e4%be%86/ | Mr. 沙先生

該文章由 shazi7804 於2016年09月22日發表在 Other 分類下, 你可以發表回文,並在保留原文地址及作者的情况下引用到你的網站或部落格。
原文轉載請註明: 從影音平台上下載被分割的 *.ts 影片並合併起來 | Mr. 沙先生
標籤:

從影音平台上下載被分割的 *.ts 影片並合併起來:目前有15 條留言

  1. 4樓
    訪客:

    你好,我在下載公視的影片時也遇到同樣的問題,然後就爬文到這裡了。首先感謝您的熱心分享,可是我仍有幾個不太懂的地方想請教一下您:
    1.請問這個script是要寫在哪裡呢?記事本嗎?
    2.cat工具要上哪找呢?

    2017-01-04 23:03:58 [回文]
    • shazi7804:

      Hi

      1. 這個script是基於 bash 環境下開發的,只要有 bash 環境都可以!
      2. cat 工具是 Linux 底下的工具,在 Windows 下可以透過 cygwin 安裝。

      2017-01-05 12:05:34 [回文]
      • 訪客:

        謝謝

        2017-01-16 15:45:43 [回文]
      • 訪客:

        我把這個 script 的網址和檔名都改成公視的 並複製貼上到 cygwin 按 enter ,卻出現「No such file or directory」(但在瀏覽器貼網址都能正常下載),請問這該怎麼解決?

        公視版的 script 如下:
        #!/bin/bash
        #
        # Program: ts video more download and merge
        # Author: shazi
        URL=”http://plus7hd-pts.cdn.hinet.net/pts-plus7hd/_definst_/smil:mbroutput/169/2_TUE/PTS-2017-01-10-22-00/PTS-2017-01-10-22-00.smil”
        shift
        wget ${URL}/media_b4000000_{0..259}.ts &
        wait
        echo media_b4000000_{0..259}.ts | tr ” ” “\n” > tslist
        while read line; do cat $line >> combined.ts; done < tslist

        請問這段 script 是不是有哪個地方出問題了呢?還是其它原因?
        圖片如下:https://i.imgur.com/6OYfJyk.png

        2017-01-17 13:50:54 [回文]
        • shazi7804:

          Hi

          請問能否提供出現 「No such file or directory」的詳細Log訊息給我,您貼上的這段 script 除了 “\n” 中的 “ 這個符號有誤以外,修正後可成功合併影片。

          2017-01-17 14:05:53 [回文]
          • 訪客:

            可是我修正符號後依然出現 「No such file or directory」耶
            Log訊息是放在哪個路徑下呢?

            2017-01-17 14:27:40 [回文]
            • shazi7804:

              Hi

              我了解問題了,你的 Cygwin 是否沒有安裝 wget ?
              因為 echo 無法找到相對應的 ts 檔案,所以無法合併。

              2017-01-17 15:09:37 [回文]
              • 訪客:

                真的是,非常感謝你的提醒,我安裝完之後就可以了!再次謝謝你的幫助!

                2017-01-17 16:03:09 [回文]
                • shazi7804:

                  good luck !!

                  2017-01-17 16:04:38 [回文]
  2. 地板
    阿爆:

    你好,我现在有个问题…就是我已经把ts文件都下载下来存在电脑里了,可不可以直接合并呢?我的是mac系统

    2017-03-21 14:57:49 [回文]
    • shazi7804:

      那你只需要 script 裡面的這段

      echo 65189_500{0..165}.ts | tr " " "\n" > tslist
      while read line; do cat $line >> combined.ts; done < tslist

      2017-03-22 14:10:09 [回文]
  3. 板凳
    小麥:

    看完這篇操作後,下載 + 合併都成功了
    感謝這篇的教學 ~

    2017-04-04 16:04:07 [回文]
    • shazi7804:

      很開心有幫到忙

      2017-04-04 18:42:27 [回文]
  4. 沙發
    阿阿中:

    一直煩惱TS檔下載,量少可以手動,量大就不知道怎麼下手,看到這篇文章的教學後,終於可以自動下載+合併了 真是太感謝您了

    2017-04-10 23:29:38 [回文]
    • shazi7804:

      舉手之勞~

      2017-04-11 01:24:29 [回文]

發表回文