使用ffmpeg/ffprobe在视频中检测alpha频道的一种好方法
在我的Django应用程序中,上传的视频文件将使用ffmpeg转码. 我现在需要一种方法来可靠地检测上传的视频是否具有alpha频道.我通常使用FFProbe获取视频元数据.你能把我指向正确的方向吗? 解决方案 您可以使用FFProbe. 进行两个步骤. #1 ffprobe -v 0 -select_streams v:0 -show_entries stream=pix_fmt -of compact=p=0:nk=1 "$FILE" 这将打印视频流的像素格式.所有带有alpha组件的像素格式都具有a的名称,但并非全部具有a的格式具有alpha.所以,运行.. #2 ffprobe -v 0 -show_entries pixel_format=name:flags=alpha -of compact=p=0 | grep "$PIX_FMT|" | grep -oP "(?
12 2024-01-24
编程技术问答社区
没有找到ffprobe或avprobe。请安装一个
我想将标签添加到MP3 YouTube-DL&ffmpeg转换的MP3: youtube -dl -o '/output/qpgtc9mdx1o.mp3'qpgtc9mdx1o -f bestaudio -extract-audio -metadata-from-title"%(Artist)S- %(标题)S" 2>&1 我在输出结果中有一个错误: [YouTube] QPGTC9MDX1O:下载网页[YouTube] QPGTC9MDX1O: 提取视频信息[YouTube] QPGTC9MDX1O:下载JS 播放器en_us-vflugo3jj [youtube] qpgtc9mdx1o:下载dash 清单[下载] /var/www/vhosts/mp3-y.com/httpdocs/mp3_output/quick-mp3.com-jalal-el-hamdaoui-2007-rassiates-vol2-f1p-9cdoxlq.mp3 已经下载了[下载] 13.
8 2023-12-25
编程技术问答社区
如何用Windows PowerShell启动ffprobe?
我正在使用Zeranoes ffmpeg为Windows构建,我可以在不安装任何内容的情况下启动FF-Prompt.但是如何从Windows PowerShell开始ff-prompt.bat?我尝试了一些Invoke-Expression或更改$env:Path之类的事情,但似乎没有任何作用,因为我得到的只是消息 " c:\ users \ indercancrator> echo off bin \ ffmpeg.exe找不到." 甚至有可能使用PowerShell启动FF-Prompt?每个建议/解决方案都非常受欢迎. 我的目标是在这里拥有这样的解决方案: http://spreadys.wordpress.com/2012/12/12/03/ffprobe and-windows-powershell/ ,但我想自动为所有剪辑做到这一点,这就是为什么我需要使用PowerShell启动FFProbe. ECHO OFF REM FF Prompt
4 2023-12-07
编程技术问答社区
重新编码vlc创建的mpeg2.ts文件,结果是20秒的文件;又称:多流文件,有隐藏的流。
我正在用vlc Off V4L2录制一些内容(如果有所不同),我刚刚选择了使用TS容器的MPEG2的第一种使用的格式.文件导致.ts扩展名,如VLC自动选择.然后,当我试图将视频文件放入视频编辑器中时,它说视频长19,884小时,大约6分钟(大小约为80MB).当我尝试在Xine中播放它时,它正确显示了持续时间(VLC没有),当我使用ffprobe>: 时 [mpegts @ 0x9b2c0a0] max_analyze_duration 5000000 reached at 5000000 Input #0, mpegts, from 'loopbacktestcap.ts': Duration: N/A, start: 17978.139456, bitrate: N/A Program 1 Stream #0:0[0x44](): Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p, 640x4
2 2023-11-25
编程技术问答社区
ffprobe show_frames for multiple videos
有什么办法可以在一个文件中同时看到多个视频的帧? 我知道如何为一个视频做到这一点 - ffprobe -show_frames 我的虚拟目录中有很多视频 - 因此我想在一个文件中查看所有视频帧. 并且有什么方法可以从本地目录中看到框架 - 而不是从虚拟目录中看到(http://....) 解决方案 学习使用shell脚本. 识别您的本地目录,然后制作一个简单的脚本以将(>>)附加到输出文件: #!/bin/bash for file in /path/to/files/*.mp4; do ffprobe -show_frames $file >> output.txt done 使脚本可使用chmod +x show_frames.sh执行,并使用./show_frames.sh. 运行它
0 2023-11-18
编程技术问答社区
如何分割一个有奇怪关键帧 "pkt_pts_time=N/A "的视频?
我可以在普通视频(MKV上的H264)上运行这样的命令: avconv -i videofile.avi -c copy -flags +global_header -segment_time 60 -f segment "videofile-part."%03d".mp4" 但是,在带有此格式和容器的视频上(我至少拥有的视频)会失败: MPEG-4在.avi文件 上 如果我探测它,我会得到由分布式忽略的关键帧: ffprobe videofile.avi -show_entries frame=key_frame,pict_type,pkt_pts_time -select_streams v -of compact -v 0 | grep frame=1(从本提示 我得到了很多: " frame | key_frame = 1 | pkt_pts_time = n/a | pict_type = i" 普通视频会输出这样的行: " frame | key_
0 2023-11-18
编程技术问答社区
通过解析ffprobe的输出,在VB表格中填充字段值
好的.我试图从视频文件中获取相关媒体信息.为此,我从脚本中运行FFProbe.这样的东西: Shell("cmd /c [ffpath]\ffprobe.exe -probesize 1000000 -hide_banner -i ""[path]\[video].mp4"" >""[path]\[video]_probe.log"" 2>&1") 创建包含类似内容的文件: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '[path]\[video].mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf57.8.102 Duration: 00:04:34.41, start: 0.033333, bitrate:
0 2023-11-18
编程技术问答社区
我的视频没有关键帧,这怎么可能呢?
当我在视频上运行以下行时,它只会输出P帧和B帧,没有i框架, ffprobe -select_streams v -show_frames -show_entries frame=pict_type -of csv 00000.MTS 视频怎么可能没有i框架. ffprobe -i 00000.MTS的输出是: ... Input #0, mpegts, from '00000.MTS': Duration: 00:17:13.24, start: 1.040000, bitrate: 16451 kb/s Program 1 Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc Stream #0:1[0x1100]: Audio: a
6 2023-11-18
编程技术问答社区
无法找到ffprobe?
我正在尝试在我的节点项目中生成视频缩略图 thumbsupply和视频thumbnail npm都返回相同的错误,称为not found: ffprobe const thumbsupply = require('thumbsupply'); const ffprobe = require('@ffprobe-installer/ffprobe'); let aa = thumbsupply.generateThumbnail('videoplayback.mp4', { size: thumbsupply.ThumbSize.MEDIUM, // or ThumbSize.LARGE timestamp: "10%", // or `30` for 30 seconds
6 2023-11-18
编程技术问答社区
查找视频文件中是否有音频存在
我试图找出视频是否存在音频,以便使用FFMPEG提取MP3.当视频不包含音频频道时,FFMPEG会创建一个空的MP3文件,我用来弄清楚视频中是否存在音频.我敢肯定,有一种更好的方法可以识别视频中是否存在音频. Avprobe会为此提供帮助吗?谁能将我指向资源或可能的解决方案? 编辑:令人惊讶的是,运行最新构建FFProbe的服务器上的同一命令无法运行.它引发了一个错误,说 未识别的选项'select_stream' 未能设置值的值'a'for Option'select_stream' 有什么想法如何纠正这一点? 解决方案 我将使用ffprobe(它与ffmpeg一起): ffprobe -i INPUT -show_streams -select_streams a -loglevel error 如果没有音频,它什么也没.如果有音频流,那么您会得到类似: [流] index = 0 codec_name = mp3 c
2 2023-11-18
编程技术问答社区
如何用mediainfo查找视频文件的秒数或其他格式的持续时间?
我如何以确定性的方式在整数中找到视频文件的持续时间. 我已经使用ffprobe来获取持续时间,但并没有为所有文件格式提供持续时间. 解决方案 使用以下命令: i)获取视频流的持续时间: $ mediainfo --Inform="Video;%Duration%" [inputfile] ii)获取媒体文件的持续时间: $ mediainfo --Inform="General;%Duration%" [inputfile] iii)仅获取音频流的持续时间: $ mediainfo --Inform="Audio;%Duration%" [inputfile] iv)获取多个参数的值: $ mediainfo --Inform="Video;%Width%,%Height%,%BitRate%,%FrameRate%" [inputfile] 输出将是这样的: 1280,720,3000000,30.0 其他解决方案 i
10 2023-11-18
编程技术问答社区
获取MOV视频的元数据
i've a .mov视频由电话Messanger应用发送.我可以检索文件和作者的真实创建数据吗?我尝试使用FFProbe,MediaInfo和类似工具,但仅给我下载时的日期. 解决方案 我编写了一个快速的Python 2脚本,可以获得创建和修改时间戳,因为这些脚本很容易找到.找到作者有点困难,因为它可以以几种不同的方式存储.示例用法: $ ./mov-timestamps.py file.mov creation date: 2013-03-29 16:14:01 modification date: 2013-03-29 16:14:13 有时您可能会看到1/1/1904的日期.这意味着时间戳为0.如果您看到1/1/1970的日期,则该文件可能是FFMPEG生成的,该文件由于安全原因而不会存储此元数据. #!/usr/bin/python import datetime import struct import sys ATOM_HEADER_SIZE =
14 2023-11-18
编程技术问答社区
使用FFMPEG:如何用时间码进行场景变化检测?
基于本文,似乎可以使用FFMPEG检测视频中的场景变化: /p> 现在,我有一个视频显示一本书文本,当说文本(单词或句子)时,它将被突出显示. 像这本音频书一样: https://youtu.be/la7l6znvkjc 我需要知道文本突出显示时的时间戳(因此场景更改),这将使我可以在YouTube视频上添加时间戳标签,因此听众可以轻松地浏览Audiobook. . 魔术命令行是什么? 非常感谢! 解决方案 组合场景场景 )和 showinfo pertere 过滤器应该实现您想要的东西: ffmpeg -i input.flv \ -filter:v "select='gt(scene,0.4)',showinfo" \ -f null \ - 2> ffout 此命令将与上一个帧不同的所有帧提取大于(gt)0.4(从0到1的比例尺).对于这些框架,将信息打印出来(showinfo) [Parse
74 2023-11-18
编程技术问答社区
从ffmpeg获取视频尺寸/分辨率/宽度x高度
如何从ffmpeg的信息输出中获取视频的高度和宽度.例如,以下输出: $ ffmpeg -i video.mp4 ... Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4': Metadata: major_brand : isom minor_version : 1 compatible_brands: isomavc1 creation_time : 2010-01-24 00:55:16 Duration: 00:00:35.08, start: 0.000000, bitrate: 354 kb/s Stream #0.0(und): Video: h264 (High), yuv420p, 640x360 [PAR 1:1 DAR 16:9], 597 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc Metadata:
88 2023-11-18
编程技术问答社区
使用ffprobe来检查文件是否只有音频或视频
我可以运行一个ffprobe命令来查看我拥有的MOV文件是只有音频还是包含视频?我有各种各样的MOV文件,其中一些是音频配音,其中一些是完整的视频. 解决方案 您可以在JSON或XML中输出流信息: ffprobe -show_streams -print_format json input.mov 您将获得带有codec_type属性的流数量,具有audio,video等的值. 其他解决方案 输出codec_type ffprobe -loglevel error -show_entries stream=codec_type -of default=nw=1 input.foo 示例结果: codec_type=video codec_type=audio 如果您有多个音频或视频流,则输出将显示多个视频或音频条目. 与上述相同,但仅输出值 ffprobe -loglevel error -show_entries strea
4 2023-11-18
编程技术问答社区
我们可以在ffmpeg ffprobe中声明一个变量吗?
我是FFMPEG的新手. 我想通过FFMPEG获得视频持续时间,并将其声明为变量.我可以在其中使用该值作为不同的函数.我正在使用电源外壳. 这是我的代码: ffmpeg -i 1aef53e6-92ac-4d28-89f8-4cce28fa0f58.mp4 2>&1 | sed -n 's/Duration: \(.*\), start/\1/gp' 解决方案 提供了您在Windows PATH变量中设置了FFMPEG的路径,例如解释在这里,这应该为您提供文件的持续时间值: $filename = '1aef53e6-92ac-4d28-89f8-4cce28fa0f58.mp4' $duration = if ((ffmpeg -i $filename 2>&1 | Out-String) -match 'Duration:\s+([\d:.]+)') { $matches[1] } 请注意,此之后$duration是一个字符串. 如果您需要创建一个
12 2023-11-13
编程技术问答社区
使用print json的Ffprobe不打印任何东西
我试图以人类可读的方式获取有关电影(分辨率,帧速率,比特率,编解码器,持续时间等)的信息.我发现这个commnad: ffprobe -v quiet -print_format json -show_format -show_streams somefile.asf 在此堆栈溢出问题中:以友好的方式获取FFMPEG信息/p> ,但这对我不起作用.当我在终端尝试时,输出为空: richard@richard-desktop:~/projects/hello-python$ ffprobe -v quiet -print_format json -show_format -show_streams tests/test_1.mpg richard@richard-desktop:~/projects/hello-python$ 解决方案 好的,Ubuntu Repos中FFMPEG的当前版本不是最新的. 我所做的是添加了更多最新的存储库: sudo
6 2023-11-02
编程技术问答社区
串联mka文件但保留时间戳
我试图将一些文件与 ffmpeg 是MKA,来自Twilio视频会议录制.我正在尝试为每个参与者获取轨道,但我正在尝试将整个时间戳与文件保持. 具体示例:我有这三个文件: 0PA1896e43f4ca0edf17d8dbfc0bab95a52.mka 1PA2a640f11bc13af2c29397800f058cb05.mka 2PA9fa5b32edc016f6f5b9669bb9b308d97.mka 这些文件都是通话中参与者的轨道,但在不同时间加入(离开会议并重新输入,导致新文件). 我想将这些文件混合在一个文件中,同时记录时间戳. FFProbe显示了每个文件的开始: 0PA1896e43f4ca0edf17d8dbfc0bab95a52.mka - Duration: 00:00:17.87, start: 1.360000, bitrate: 78 kb/s 1PA2a640f11bc13af2c29397800f058cb05.mka - Du
6 2023-10-28
编程技术问答社区
找不到 ffmpeg 或 avconv-Python
我正在处理验证码求解器,但我需要使用ffmpeg,尽管没有任何效果. Windows 10用户. 第一次运行代码时警告: C:\Users\user\AppData\Roaming\Python\Python310\site-packages\pydub\utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning) 然后,当我尝试运行脚本并且需要FFProbe时,我会收到以下错误: C:\Users\user\AppData\Roaming\Python\Python310\site-packages\pydub\utils.py:1
8 2023-10-25
编程技术问答社区
当从FFProbe STDERR打印字符串时,输出错误。
我正在尝试制作一个简单的功能来包裹FFProbe ,并且大多数数据都可以正确检索. 问题是,使用Windows命令提示符和Windows的Git Bash实际将字符串实际打印到命令行时,输出出现乱和订单. 一些歌曲(特别是文件Imagine Dragons - Hit Parade_ Best of the Dance Music Charts\80 - Beazz - Lime (Extended Mix).flac)缺少元数据.我不知道为什么,但是词典以下功能返回的函数为空. ffprobe将其结果输出为stderr,可以将其输送到subprocess.PIPE,解码和解析.我选择了解析位的正则罚款. This is a slimmed down version of my code below, for the output take a look at the github gist . #! /usr/bin/env python3 # -*- c
28 2023-10-04
编程技术问答社区