列出目錄中每個視訊檔案的時長

列出目錄中每個視訊檔案的時長

我有一個充滿 .MP4 視訊檔案的目錄。我想看到一個列表,其中包含每個文件的名稱及其持續時間(以分鐘和秒為單位)。像這樣的事情:

one.mp4    4:34
two.mp4    2:23
three.mp4  8:34
four.mp4   0:43

我嘗試了很多文件管理器,但找不到一個可以向我顯示此資訊的文件管理器。

涉及終端的解決方案就可以了。

答案1

試試這個:(靈感來自超級用戶網站

for f in *.mp4
do
  echo -n "$f "
  ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 -sexagesimal "$f"
done

但是,輸出的格式為 HH:MM:SS.MILLISECONDS。如果省略選項 -sexagesimal,您將獲得以秒為單位的持續時間。

對於所需的輸出形式 HH:MM,您可以執行以下操作:

for f in *.mp4
do
  echo -n "$f "
  dur=`ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$f"`
  min=`echo "$dur/60" | bc`
  sec=`echo "$dur%60/1" | bc`
  echo "$min:$sec"
done

答案2

avprobe從包裝中libav-tools可以做到這一點。

範例輸出 avprobe myfile.mp4

avprobe 版本 10.1-6:10.1-1~bpo70+1,版權所有 (c) 2007-2014 Libav 開發人員
  建於 2014 年 6 月 6 日 18:25:37,使用 gcc 4.7 (Debian 4.7.2-5)
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x90f4720] 多個編輯清單條目,可能會出現音視頻不同步,歡迎補丁
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x90f4720] 多個編輯清單條目,可能會出現音視頻不同步,歡迎補丁
輸入 #0, mov,mp4,m4a,3gp,3g2,mj2, 來自 'Zieleinlauf_2013_1886.mp4':
  元數據:
    主要品牌:isom
    次要版本:512
    相容品牌:isomiso2avc1mp41
    編碼器:Lavf54.2.100
  持續時間:00:00:14.09,開始:0.021995,位元速率:4009 kb/s
    串流#0.0(und):影片:h264(高)、yuv420p、534x300、3854 kb/s、25 fps、25 tbn、50 tbc(預設)
    串流 #0.1(und):音訊:aac、22050 Hz、單聲道、fltp、127 kb/s(預設)
#av探針輸出

相關內容