标签: ffprobe

"probe_score"对ffprobe输出意味着什么?

给定一个媒体文件,运行后ffprobe -i input.mp4 -show_format -print_format json,我得到这样的东西:

{
    "format": {
        "filename": "ooxx.mp4",
        "nb_streams": 2,
        "nb_programs": 0,
        "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
        "format_long_name": "QuickTime / MOV",
        "start_time": "0.000000",
        "duration": "231.210000",
        "size": "65133325",
        "bit_rate": "2253650",
        "probe_score": 100,
        "tags": {
            "major_brand": "isom",
            "minor_version": "512",
            "compatible_brands": "isomiso2avc1mp41",
            "encoder": "Lavf55.33.100",
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道probe_score在这里意味着什么?如何计算?

ffmpeg ffprobe

9
推荐指数
1
解决办法
2369
查看次数

来自AWS Lambda函数中的spawn child_process的SIGSEGV

我正在尝试在AWS Lambda函数中生成一个同步子进程(运行ffprobe),但它几乎立即(200ms)死于信号SIGSEGV.

我对分段错误的理解是,它是一个尝试访问不允许访问的内存的进程.我尝试将内存增加到1024MB(我使用128MB,因为每次执行仅使用大约56MB),但这并没有改变任何东西.

我知道我不是唯一遇到此问题的人:https://forums.aws.amazon.com/thread.jspa?threadID = 229397

有谁知道如何解决这个问题?

2016年4月25日更新

为清楚起见,我运行的代码是:

import { spawnSync } from 'child_process';

exports.handler = (event, context) => {
  process.env.PATH = `${process.env.PATH}:${process.env.LAMBDA_TASK_ROOT}`;
  const ffprobe = './ffprobe';

  const bucket = event.Records[0].s3.bucket.name;
  const key = event.Records[0].s3.object.key;
  console.log(`bucket: ${bucket}`);
  console.log(`key: ${key}`);

  const url = 'http://my-clip-url.com'; // An s3 presigned url.
    if (!url) {
      throw new Error('Clip does not exist.');
    }

    const command = `-show_format -show_streams -print_format json ${url}`;

    try {
      const child = spawnSync(ffprobe, command.split(' '));
      console.log(`stdout: ${child.stdout.toString()}`) …
Run Code Online (Sandbox Code Playgroud)

child-process amazon-web-services node.js ffprobe aws-lambda

9
推荐指数
1
解决办法
1847
查看次数

如何用avprobe/ffprobe检测音频采样率?

我正在使用通过Homebrew安装的libav 9.6.

$ avprobe -version
avprobe version 9.6, Copyright (c) 2007-2013 the Libav developers
  built on Jun  8 2013 02:44:19 with Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)
avprobe 9.6
libavutil     52.  3. 0 / 52.  3. 0
libavcodec    54. 35. 0 / 54. 35. 0
libavformat   54. 20. 3 / 54. 20. 3
libavdevice   53.  2. 0 / 53.  2. 0
libavfilter    3.  3. 0 /  3.  3. 0
libavresample  1.  0. 1 /  1.  0. 1 …
Run Code Online (Sandbox Code Playgroud)

ffmpeg libav ffprobe avprobe

8
推荐指数
1
解决办法
6691
查看次数

为什么 jq --raw-output 参数无法从 @csv 输出中删除引号?

我正在尝试使用重新格式化asjq生成的 JSON 输出的某些元素。我很接近(在我看来),但在细节上遇到了困难:ffprobecsv

\n\n

我的ffprobe输出显示在 jq 1.6 游乐场中

\n\n

我正在 MacOS Mojave (10.14.6) 上运行 jq ( jq --version=> )最近的 d/l 二进制文件jq-1.6

\n\n

从我的 Mac 终端上,我的结果是:

\n\n
$ fn_ffprobeall | jq -r \'[.format.filename,.format.format_name,.format.tags.album_artist] | @csv\'\n"01 Jubilee.flac","flac","Bill Charlap Trio"\n\n# where fn_ffprobeall is a function defined as: \nfn_ffprobeall () { ffprobe -i "01 Jubilee.flac" -hide_banner -v quiet -print_format json -show_format -show_streams; }\n
Run Code Online (Sandbox Code Playgroud)\n\n

但这个jq输出(如上所示)不是我需要的...我需要带引号的值""。根据文档--raw-output / -r:​ …

csv string quotes ffprobe jq

8
推荐指数
1
解决办法
6540
查看次数

使用Python获取FFProbe信息

我一直试图永远解决这个问题(我是编程的新手),我无法弄明白.

我正在尝试构建一个将测试文件的脚本,并为我提供输出,我可以从中获取"音频格式"等信息,然后我可以将其放入文件名中.但是,我甚至无法让脚本返回任何文件信息.插入输入文件时我碰到了墙...

所以在这一点上我只需要帮助让它根据我投入的argv吐出信息.希望我能够弄清楚如何从中解析音频信息.

我的尝试似乎很接近:

#!/usr/bin/python
import os, sys, subprocess, shlex, re
from subprocess import call
def probe_file(filename):
    p = subprocess.Popen(['/opt/local/bin/ffprobe', '-show_format', '-pretty', '-loglevel quiet', -i filename], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
    print filename
    print p.communicate()
[probe_file (f) for f in os.listdir('.') if not f.startswith('.')]
Run Code Online (Sandbox Code Playgroud)

python ffmpeg ffprobe

7
推荐指数
2
解决办法
1万
查看次数

ffprobe - 从管道获取文件信息

我有一个oog文件(它由来自pbx Asterisk记录的两个audiostreams的sox混合)我正在尝试用ffprobe获取文件信息.当我使用像

cat %filename%.ogg | ffprobe -i - 
Run Code Online (Sandbox Code Playgroud)

我收到无效的文件信息(持续时间:N/A,错误的比特率等)当我尝试

ffprobe -i %filename%
Run Code Online (Sandbox Code Playgroud)

一切正常,我得到文件信息.可能有什么不对?文件内容?

ffmpeg ffprobe

7
推荐指数
2
解决办法
4638
查看次数

ffmpeg寻求计算错误的字节范围?

我在尝试从特定时间戳的电影文件中提取缩略图时遇到了问题.一般来说,我对此没有任何问题,但是我遇到了一组电影文件,这些文件在请求的字节范围内出现错误(416请求范围不满足).

奇怪的是服务器正在返回部分内容请求中的内容长度,但是当它请求电影文件时,它请求超过该长度的长度.

这有点过头了,所以我不确定这里会发生什么.任何见解都会很棒.

命令:

/usr/bin/ffmpeg -y -ss 1400 -i 'https://s3-us-west-2.amazonaws.com/my-bucket/mymoviefile.mp4' -qscale:v 2 -f image2 -vframes 1 -filter:v 'scale=192:108' -loglevel debug /data/www/storage/test.jpg 2>&1
Run Code Online (Sandbox Code Playgroud)

错误:

[https @ 0x22e1e00] header='HTTP/1.1 416 Requested Range Not Satisfiable'
[https @ 0x22e1e00] http_code=416
[https @ 0x22e1e00] HTTP error 416 Requested Range Not Satisfiable
Run Code Online (Sandbox Code Playgroud)

源文件大小:

1776706045 bytes
Run Code Online (Sandbox Code Playgroud)

源内容持续时间:

2897.624271
Run Code Online (Sandbox Code Playgroud)

部分内容请求:

[https @ 0x22e1e00] header='HTTP/1.1 206 Partial Content'
[https @ 0x22e1e00] http_code=206
[https @ 0x22e1e00] header='x-amz-id-2: 4J1pgHExIUA0GxIxSBmGJjrRqliHbsIjXeuGzVfTlaaoVXbyZI5FQNma8fGaifcovkXfxJev5yU='
[https @ 0x22e1e00] header='x-amz-request-id: 78B3BDBB0356EF40'
[https @ 0x22e1e00] header='Date: Wed, 16 Dec …
Run Code Online (Sandbox Code Playgroud)

ffmpeg http-content-range ffprobe

7
推荐指数
1
解决办法
1859
查看次数

ffprobe选择音频和视频流

我使用以下代码通过ffprobe提取视频信息:

ffprobe -show_streams -of json -v quiet -i input.mp4
Run Code Online (Sandbox Code Playgroud)

所有流的信息都出现在输出中,而我只需要v:0和a:0流的信息。

我知道有-select_streams选择流的选项,但它仅接受一个参数,例如:-select_streams v:0

我可以使用-select_streams两个参数v:0a:0也可以使用两次吗?

ffmpeg ffprobe

7
推荐指数
3
解决办法
6923
查看次数

如何将ffmpeg格式映射到MIME类型和文件扩展名?

有人知道将ffmpeg格式值映射到MIME类型和推荐文件扩展名的参考吗?我的谷歌尝试未能发现任何事情.

我手动整理了一个小小的列表,其中包含来自维基百科,IANAMozilla开发者网络的猜测和线索,用于我在视频输入测试集合中遇到的格式子集:

ffmpeg Format             Extension  MIME Type
???????????????????????   ?????????  ?????????????????????? 
asf                       asf        application/vnd.ms-asf
avi                       avi        video/x-msvideo
flv                       flv        video/x-flv
matroska,webm             webm       video/webm
m4v                       m4v        video/x-m4v
mov,mp4,m4a,3gp,3g2,mj2   mp4        video/mp4
mpeg                      mpeg       video/mpeg
mpegts                    mpeg       video/mpeg
mpegvideo                 mpeg       video/mpeg
ogg                       ogv        video/ogg
matroska                  mkv        video/x-matroska
webm                      webm       video/webm
Run Code Online (Sandbox Code Playgroud)

不过,不知道我是否打出了正确的电话.

(测试文件已经有文件扩展名,但我假设用户上传的文件扩展名无关紧要,并且应该根据ffprobe和智能映射重命名该文件......)

video file-extension ffmpeg mime-types ffprobe

7
推荐指数
1
解决办法
834
查看次数

FFmpeg-非单调递增dts是什么意思?

观察-第一部分

我在其他地方看到了运行以下命令的建议,以查看我的.mp4是否有问题。

ffmpeg -v error  -i ~/Desktop/5_minute_sync_output_15mn.mp4 -f null - 2>error.log
Run Code Online (Sandbox Code Playgroud)

当我运行上面的命令时,在下面显示的行上看到了很多日志。

应用程序向流0中的复用器提供了无效的,非单调递增的dts:15635> = 15635

通过大量的搜索和阅读,我了解到解码时间戳不是按顺序排列的。

观察-第二部分

但是,使用以下命令和一些后期处理检查相同mp4的帧时,我没有看到pkt_dtsframes_info json中的视频或音频流出现故障。

ffprobe -loglevel panic -of json -show_frames ~/Desktop/5_minute_sync_output_15mn.mp4
Run Code Online (Sandbox Code Playgroud)

这使我怀疑我对“ 观察-一部分-我”的初步理解

这2件事无关吗?任何帮助,将不胜感激。

dts ffmpeg audio-video-sync ffprobe

7
推荐指数
1
解决办法
2786
查看次数