我必须使用 ffmpeg 将视频中的所有图像、背景、图层等列为 json 文件

问题描述

请告诉我获取 json 格式的 mp4 文件信息的 ffmpeg cammand 行代码。我想要 json 格式的视频(mp4 格式)的详细信息。详细信息包括图像,图层,背景,音频信息等,如下面的代码所示。(输出如下所示,我需要输入命令行代码)。提前致谢

{  
   "images":[
{
  "name":"img_0.jpg","w":540,"h":960,"prefix":[
    "-i"
  ],"postfix":[

  ]
},{
  "name":"img_1.jpg",{
  "name":"img_2.jpg",{
  "name":"img_3.jpg",{
  "name":"img_4.jpg","postfix":[

  ]
}
],"static_inputs":[
{
  "name":"background_video.mp4","video":{
"h":960,"w":1080,"duration":30
},"e":[],"m":[
"-{pythoncomplex}"
],"r":["[5]split=2[color][alpha]; [color]crop=iw/2:ih:0:0[color]; [alpha]crop=iw/2:ih:iw/2:0[alpha]; 
[color][alpha]{pythonmerge}[ovrly]; [0]scale=540:960,setsar=1[0_scalled]; 
[1]scale=540:960,setsar=1[1_scalled]; [2]scale=540:960,setsar=1[2_scalled]; 
[3]scale=540:960,setsar=1[3_scalled]; [4]scale=540:960,setsar=1[4_scalled]; [0_scalled] 
{pythonz}pan=z='if(lte({pythonz},1.0),1.1,max(1.001,{pythonz}-0.0015))':d=25*5:s=540x960,{pythonf}=t=out:st=6:d=1[v0]; [1_scalled]{pythonz}pan=z='if(lte({pythonz},{pythonf}=t=in:st=0:d=1,{pythonf}=t=out:st=6:d=1[v1]; 
[2_scalled]{pythonz}pan=z='if(lte({pythonz},{pythonz}-0.0015))':d=25*7:s=540x960,{pythonf}=t=out:st=8:d=1[v2]; [3_scalled] 
{pythonz}pan=z='if(lte({pythonz},{pythonf}=t=out:st=8:d=1[v3]; [4_scalled] 
{pythonz}pan=z='if(lte({pythonz},{pythonz}-0.0015))':d=25*6:s=540x960,{pythonf}=t=out:st=7:d=1[v4]; [v0][v1][v2][v3] 
[v4]concat=n=5:v=1:a=0,format=yuv420p[concatenated_video]; [concatenated_video][ovrly] 
{pythono}=0:0[base_video]; [base_video][6] 
{pythono}=enable='between(t,15)':x=30:y=30[watermarked_part1]; [watermarked_part1][6] 
{pythono}=enable='between(t,15,30)':x=(main_w-{pythono}_w-30):y=(main_h-{pythono}_h-30)"],"i":["[5]split=2[color][alpha]; [color]crop=iw/2:ih:0:0[color]; [alpha]crop=iw/2:ih:iw/2:0[alpha]; 
[color][alpha]{pythonmerge}[ovrly]; [0]scale=540:960,30)':x=(main_w-{pythono}_w-30):y=(main_h-{pythono}_h-30) 
[final_video]"],"n":[],"g":[],"c":[],"o":[
"-map","[final_video]","-map","7:a"
],"d":[
"-t","30"
],"s":[],"layers": [
{
  "ao": 0,"bm": 1,"ddd": 0,"ind": 1,"ip": 0,"ks": {
    "a": {
      "a": 0,"ix": 1,"k": [
        270,480,0
      ]
    },"o": {
      "a": 0,"ix": 11,"k": 18.039
    },"p": {
      "a": 0,"ix": 2,"r": {
      "a": 0,"ix": 10,"k": 0
    },"s": {
      "a": 0,"ix": 6,"k": [
        100,100,100
      ]
    }
  },"nm": "all","op": 327,"refId": "image_0","sr": 1,"st": 0,"ty": 2
},{
  "ao": 0,"bm": 3,"ind": 2,"ip": 76,"k": 40
    },"nm": "lvjing  all 3","refId": "image_1","st": -8,"bm": 13,"ind": 3,"k": 50.196
    },"nm": "baohedu all 3","refId": "image_2","ty": 2
}
]
}

解决方法

您可以使用以下命令在 json 文件中打印视频信息

    ffprobe -v quiet -print_format json -show_format -show_streams "input.mp4" >output.json

您可以看到来自 this link 的示例输出 如果您有任何想了解的更多信息,请告诉我

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...