我有一個OOG文件(它是由SOX由PBX Asterisk的兩個audiostreams混合),我試圖讓與ffprobe文件信息。 當我使用類似ffprobe - 獲取文件信息從管
cat %filename%.ogg | ffprobe -i -
我得到無效的文件信息(時間:N/A,錯誤的比特率等) 當我試圖
ffprobe -i %filename%
一切正常,我獲取文件信息。 什麼可能是錯的?文件內容?
我有一個OOG文件(它是由SOX由PBX Asterisk的兩個audiostreams混合),我試圖讓與ffprobe文件信息。 當我使用類似ffprobe - 獲取文件信息從管
cat %filename%.ogg | ffprobe -i -
我得到無效的文件信息(時間:N/A,錯誤的比特率等) 當我試圖
ffprobe -i %filename%
一切正常,我獲取文件信息。 什麼可能是錯的?文件內容?
由於ffprobe的版本1.0.7,你甚至可以得到一個JSON格式輸出的輸出:
ffprobe -v安靜-print_format JSON -show_format斜坡\ - \ Apathy.mp3
它產生follwing輸出:
{
"format": {
"filename": "Ramp - Apathy.mp3",
"nb_streams": 2,
"format_name": "mp3",
"format_long_name": "MP2/3 (MPEG audio layer 2/3)",
"start_time": "0.000000",
"duration": "203.638856",
"size": "4072777",
"bit_rate": "159999",
"tags": {
"title": "Apathy",
"artist": "Ramp",
"album": "Evolution Devolution Revolution",
"date": "1999",
"genre": "Metal"
}
}
}
我認爲你可以使用貓探頭,你有貓的文件內容有任何要求?如果不是隻使用ffprobe沒有貓。
他特別要求從管道輸入* *不是文件!謝謝,但沒用,他說他有時間與文件輸入... – Rich
這是回答其他問題。問:「如何從管道讀」,回答:「你可以使用JSON格式」,奇怪,不是嗎?我檢查了編輯的歷史 - 問題沒有改變。 (https://stackoverflow.com/posts/13763047/revisions) – maxkoryukov
只是一個快速照會說,輸入到ffprobe
管道似乎工作就好了。在地方輸入文件的使用連字符,你是去比賽。下面是我的系統上的隨機視頻文件的例子:
cat 01.mp4 | ffprobe -show_format -pretty -loglevel quiet -
返回:
[FORMAT]
filename=pipe:
nb_streams=2
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime/MOV
start_time=N/A
duration=0:02:56.400000
size=N/A
bit_rate=N/A
probe_score=100
TAG:major_brand=isom
TAG:minor_version=512
TAG:compatible_brands=isomiso2mp41
TAG:creation_time=1970-01-01T00:00:00.000000Z
TAG:title=yy.mp4
TAG:encoder=Lavf52.78.3
[/FORMAT]
我知道它在4年之後,但我想最近做同樣的事情,你[不可以](https://trac.ffmpeg.org/ticket/4358)。大多數格式需要讀取整個文件來計算持續時間,這就是爲什麼指定直接文件名的原因,因爲它可以訪問它 - 並且ffprobe需要更改!很煩人!你可以用'ffmpeg'做一些事情,但這意味着讀取整個文件:'ffmpeg -i pipe:0 -f null/dev/null
Rich