1

我正在使用一个安装了 Ubuntu 16.04 的 Docker 容器。我尝试设置基于 IOT 的 people_counter 项目,因此我安装了 OpenVINO Toolkit,安装后我运行命令,最后在构建并启动使用深度学习推理进行人数统计的主应用程序时出现以下错误。

我运行程序:

./obj_recognition \
      -i Pedestrain_Detect_2_1_1.mp4 \
      -m /opt/intel/computer_vision_sdk/deployment_tools/intel_models/person-detection-retail-0012/FP16/person-detection-retail-0012.xml \
      -l /opt/intel/computer_vision_sdk/deployment_tools/intel_models/person-detection-retail-0012/FP16/person-detection-retail-0012.bin \
      -d GPU \
      -t SSD \
      -thresh 0.7 0 \
      2>/dev/null \
  | ffmpeg \
      -v warning
      -f rawvideo
      -pixel_format bgr24
      -video_size 544x320
      -i -
      http://localhost:8090/fac.ffm

我得到了这个:

Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)

我能做些什么?

编辑:在 Peter Cordes建议之后

删除 -v 警告我运行命令,我得到了这个:

 libavutil      54. 31.100 / 54. 31.100
 libavcodec     56. 60.100 / 56. 60.100
 libavformat    56. 40.101 / 56. 40.101
 libavdevice    56.  4.100 / 56.  4.100
 libavfilter     5. 40.101 /  5. 40.101
 libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
   libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
Input #0, rawvideo, from 'pipe:':
  Duration: N/A, bitrate: 104448 kb/s
   Stream #0:0: Video: rawvideo (BGR[24] / 0x18524742), bgr24, 544x320,   104448 kb/s, 25 tbr, 25 tbn, 25 tbc
 Output #0, ffm, to 'http://localhost:8090/fac.ffm':
 Metadata:
  creation_time   : 2018-09-05 06:55:30
  encoder         : Lavf56.40.101
   Stream #0:0: Video: mjpeg, yuv420p, 852x480, q=2-31, 8192 kb/s, 25 fps,  1000k tbn, 25 tbc
  Metadata:
    encoder         : Lavc56.60.100 mjpeg
 Stream mapping:
   Stream #0:0 -> #0:0 (rawvideo (native) -> mjpeg (native))
 frame=    0 fps=0.0 q=0.0 Lsize=       4kB time=00:00:00.00 bitrate=N/A    
  video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
  Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
4

1 回答 1

0

删除该-v warning选项,以便您从 ffmpeg 获得更多输出。(默认为-v infoffmpeg -v help用于查看可用的不同日志级别。)


(编辑:这是在更新之前编写的,当我们没有 ffmpeg 输出显示时,http://localhost:8090/fac.ffm等等确实进入了 ffmpeg 命令行。所以也许 ffmpeg 的输入是空的。用 Hexdump 将其转储hexdump -C


看起来你的问题是你在后面的行末尾省略了\行继续,所以这些是单独的 shell 命令而不是 args to ffmpeg。您应该收到错误消息,例如-f: command not found.


如果您使用的是 bash(而不是sh),则可以使用 bash 数组变量让您在参数列表中使用换行符作为空格。

ffmpeg_args = (
  -v warning
  -f rawvideo
  -pixel_format bgr24
  -video_size 544x320
  -i -
  http://localhost:8090/fac.ffm
)

blah blah | ffmpeg "${ffmpeg_args[@]}"
于 2018-09-05T05:22:42.637 回答