Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video FFmpeg错误:ratecontrol_init:can';t打开统计文件_Video_Ffmpeg - Fatal编程技术网

Video FFmpeg错误:ratecontrol_init:can';t打开统计文件

Video FFmpeg错误:ratecontrol_init:can';t打开统计文件,video,ffmpeg,Video,Ffmpeg,我已经安装了一个运行Ubuntu14.04的AWS EC2实例,并安装了FFmpeg,这样我就可以对视频进行压缩和转码 我正在尝试使用以下代码进行两次转换: ffmpeg-i input-file.avi-codec:v libx264-profile:v high-preset slow-b:v 500k-maxrate 500k-bufsize 1000k-vf scale=702:-1-threads 0-pass 1-an-f mp4~/encoded/null 第二关: ffmpeg-

我已经安装了一个运行Ubuntu14.04的AWS EC2实例,并安装了FFmpeg,这样我就可以对视频进行压缩和转码

我正在尝试使用以下代码进行两次转换:

ffmpeg-i input-file.avi-codec:v libx264-profile:v high-preset slow-b:v 500k-maxrate 500k-bufsize 1000k-vf scale=702:-1-threads 0-pass 1-an-f mp4~/encoded/null

第二关:

ffmpeg-i input-file.avi-编解码器:v libx264-配置文件:v高-预设慢-b:v 500k-最大速率500k-bufsize 1000k-vf scale=702:-1-线程0-通过2-编解码器:libfdk_aac-b:128k-f mp4输出文件.mp4

但是,我得到以下错误:

ffmpeg version N-77283-g91c2a33 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04)
  configuration: --prefix=/home/ubuntu/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/ubuntu/ffmpeg_build/include --extra-ldflags=-L/home/ubuntu/ffmpeg_build/lib --bindir=/home/ubuntu/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree
  libavutil      55. 11.100 / 55. 11.100
  libavcodec     57. 17.100 / 57. 17.100
  libavformat    57. 20.100 / 57. 20.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6. 21.100 /  6. 21.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, avi, from 'input-file.avi':
  Duration: 01:18:05.29, start: 0.000000, bitrate: 2025 kb/s
    Stream #0:0: Video: mpeg4 (Simple Profile) (XVID / 0x44495658), yuv420p, 720x480 [SAR 1:1 DAR 3:2], 1789 kb/s, 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 tbc
    Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, stereo, fltp, 224 kb/s
[libx264 @ 0x1e04240] using SAR=1/1
[libx264 @ 0x1e04240] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
[libx264 @ 0x1e04240] ratecontrol_init: can't open stats file
Output #0, mp4, to '/home/ubuntu/encoded/null':
    Stream #0:0: Video: h264, none, q=2-31, 128 kb/s, SAR 1:1 DAR 0:0, 29.97 fps
    Metadata:
      encoder         : Lavc57.17.100 libx264
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
上面写的命令在我的本地计算机(运行OSX)上运行良好。有人对如何解决这个问题有什么建议吗?

胡乱猜测:

通过1添加:

 -vcodec libx264 -strict -2 -passlogfile /tmp/mydummy
通过2添加:

 -vcodec libx264 -strict -2 -passlogfile /tmp/mydummy

有人留下了一个关于尝试的建议,然后立即将其删除。我不知道为什么,但幸运的是他们的建议解决了这个问题

我在每个过程中的视频编解码器规范之后添加了:
-strict-2-passlogfile~/encoded/log

我成功运行的命令是:

ffmpeg -i input-file.avi -codec:v libx264 -strict -2 -passlogfile ~/encoded/log -profile:v high -preset slow -b:v 500k -maxrate 500k -bufsize 1000k -vf scale=702:-1 -threads 0 -pass 1 -an -f mp4 ~/encoded/null && ffmpeg -i input-file.avi -codec:v libx264 -strict -2 -passlogfile ~/encoded/log -profile:v high -preset slow -b:v 500k -maxrate 500k -bufsize 1000k -vf scale=702:-1 -threads 0 -pass 2 -codec:a libfdk_aac -b:a 128k -f mp4 ~/encoded/output-file.mp4
我不知道是谁留下了这个建议,然后删除了它,但谢谢你

用脚本轻松完成。 通过调整一些参数,我90%的工作都可以完成

#!/bin/bash
# 0
# 4x3  based on 704x576 -->  766x576
# 4x3  based on 720x576 -->  780x576
# 16x9 based on 720x576 --> 1024x576
# 16x9 based on 720x480 -->  854x480     56 marge on 2.21:9 480 --> 368
# 854x480  (60 60 nmarge)
# 1
# rescale values of original as projected on scaled version   1280->1024  means 0,8 of the original value in source is new target
# or, conversely, put the scale before the delogo....?
# 2
# https://trac.ffmpeg.org/wiki/How%20to%20use%20-map%20option  MAP streams...
# 3
# reminder of DVD input DVDIN='concat:./VIDEO_TS/VTS_01_1.VOB|./VIDEO_TS/VTS_01_2.VOB|./VIDEO_TS/VTS_01_3.VOB'

# program to be used, in this case, newer statically linked version
# ffmpeg version 2.3.3-   http://johnvansickle.com/ffmpeg/    Copyright (c) 2000-2014 the FFmpeg developers

# ffmpeg=/opt/ffmpeg/ffmpeg
ffmpeg=ffmpeg

DEINT="yadif=0:0:0,"
#CROP="crop=iw-0-0:ih-140-140:0:140,"
#SHARP=",unsharp=4:4:1.2:4:4:0.2"
DELOGO=",delogo=x=1100:y=680:w=120:h=120"
#VOLUME="-vol 128 -af volume=8dB "
#COLOR=" -vf eq=gamma=1.6:saturation=1.6 "
STRICT=" -strict -2 " 

SCALE="scale=1280:720"
FRATE="25.0"
VFRATE="25.00"
BRATE="7500"
COMAND=" -crf $FRATE -b:v "$BRATE"k -qmin 0 -qmax 54 -vcodec libx264 -c:v libx264 -r $VFRATE -i_qfactor 0.71  -vf $DEINT$CROP$SCALE$SHARP$DELOGO $COLOR $VOLUME -ar 48000 -b:a 192k -ac 2 -codec:a libfdk_aac "
#COMAND=" -crf $FRATE -b:v "$BRATE"k -qmin 0 -qmax 54 -vcodec libx264 -c:v libx264 -r $VFRATE -i_qfactor 0.71  -vf $DEINT$CROP$SCALE$COLOR$SHARP$DELOGO $VOLUME -ar 48000 -b:a 192k -ac 2 -acodec ac3 -codec:a:1 ac3 "


# filename can be links. No spaces allowed.
numshows=( "01" "02" "03" "04" "05" "06" "07" "08" "09" "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" "20" "21" "22" )
shows=( "imran.mkv" )


# HERE, Replace show[1] with $2 if commandline is to override the given array

total=${#shows[*]}
#shows[0]=$DVDIN

for (( i=0; i<=$(( $total -1 )); i++ ))
do
  SHOW="${shows[$i]}"
  NUMSHOW="${numshows[$i]}"
  echo ">>>>>>"$NUMSHOW"-+-+-+-+-+->"$SHOW

  #INFILE=$1/$2
  INFILE=$SHOW
  SHOW="OUTFILE-"$NUMSHOW
  VIDOUT=CVT-$SHOW.mp4
  echo START CODING 
  echo $VIDOUT
  echo .
  echo .
  echo .
  echo .
  echo .
  echo .
  echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  echo $COMAND --- $VIDOUT
  echo .
  echo .
  echo   $ffmpeg -threads 20  -y -i $INFILE  $COMAND $STRICT -passlogfile "/home/fnaaijkens/Videos/_TMP"$SHOW".log" -pass 1  "/home/fnaaijkens/Videos/_TMP-$VIDOUT"
  $ffmpeg -threads 16  -y -i $INFILE  $COMAND -passlogfile "/home/fnaaijkens/Videos/_TMP"$SHOW".log" -pass 1  "/home/fnaaijkens/Videos/_TMP-$VIDOUT"
  echo ------------------------------------------------------------------------------------------------------------------------------------------------------------
  echo ------------------------------------------------------------------------------------------------------------------------------------------------------------
  $ffmpeg -threads 16  -y -i $INFILE  $COMAND $STRICT -passlogfile "/home/fnaaijkens/Videos/_TMP"$SHOW".log" -pass 2  "/home/fnaaijkens/Videos/$VIDOUT"
  rm /home/fnaaijkens/Videos/_TMP*
#   mkvmerge -o $VIDOUT $SHOW -s 0 --language 0:nl *S03E$NUMSHOW*.srt --title $SHOW
done
#/bin/bash
# 0
#基于704x576-->766x576的4x3
#基于720x576-->780x576的4x3
#基于720x576-->1024x576的16x9
#16x9基于2.21:9 480-->368上的720x480-->854x480 56 marge
#854x480(60 N大)
# 1
#按缩放版本1280->1024的投影重新缩放原始值意味着源中原始值的0,8为新目标
#或者,反过来,把天平放在德洛戈之前。。。。?
# 2
# https://trac.ffmpeg.org/wiki/How%20to%20use%20-映射%20选项映射流。。。
# 3
#DVD输入提醒DVDIN='concat:./VIDEO_TS/VTS_01_1.VOB./VIDEO_TS/VTS_01_2.VOB./VIDEO_TS/VTS_01_3.VOB'
#在本例中,要使用的程序是较新的静态链接版本
#ffmpeg版本2.3.3-http://johnvansickle.com/ffmpeg/    版权所有(c)2000-2014 FFmpeg开发者
#ffmpeg=/opt/ffmpeg/ffmpeg
ffmpeg=ffmpeg
DEINT=“yadif=0:0:0,”
#CROP=“CROP=iw-0-0:ih-140-140:0:140,”
#SHARP=“,unsharp=4:4:1.2:4:4:0.2”
DELOGO=“,DELOGO=x=1100:y=680:w=120:h=120”
#VOLUME=“-vol 128-af VOLUME=8dB”
#COLOR=“-vf eq=gamma=1.6:饱和度=1.6”
STRICT=“-STRICT-2”
SCALE=“SCALE=1280:720”
FRATE=“25.0”
VFRATE=“25.00”
BRATE=“7500”
COMAND=“-crf$FRATE-b:v“$BRATE”k-qmin 0-qmax 54-vcodec libx264-c:v libx264-r$VFRATE-i_qfactor 0.71-vf$DEINT$CROP$SCALE$SHARP$DELOGO$COLOR$VOLUME-ar 48000-b:a 192k-ac 2-codec:a libfdk_aac”
#COMAND=“-crf$FRATE-b:v“$BRATE”k-qmin 0-qmax 54-vcodec libx264-c:v libx264-r$VFRATE-i_qfactor 0.71-vf$DEINT$CROP$SCALE$COLOR$SHARP$DELOGO$VOLUME-ar 48000-b:a 192k-ac 2-acodec ac3-codec:a:1 ac3”
#文件名可以是链接。不允许有空格。
数字显示=(“01”“02”“03”“04”“05”“06”“07”“08”“09”“10”“11”“12”“13”“14”“15”“16”“17”“18”“19”“20”“21”“22”)
shows=(“imran.mkv”)
#这里,如果命令行要覆盖给定数组,请将show[1]替换为$2
总计=${显示[*]}
#显示[0]=$DVDIN

对于((i=0;如图所示为通过#1或2@RobertRowntree这是Pass的标准,我想这太离谱了……它没有被删除