Выходной файл пуст, ничего не было закодировано (проверьте параметры -ss / -t / -frames, если они используются) в ubuntu16.04 в контейнере Docker - PullRequest
0 голосов
/ 03 сентября 2018

Я использую контейнер Docker, в который я установил Ubuntu 16.04. Я попытался настроить проект people_counter, основанный на IOT, поэтому я установил 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)

Что я могу сделать?

Edit: После Питер Кордес sugestion

удаляя -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)

1 Ответ

0 голосов
/ 05 сентября 2018

Удалите опцию -v warning, чтобы получить больше выходных данных от ffmpeg. (По умолчанию -v info. Используйте ffmpeg -v help, чтобы увидеть различные доступные уровни журнала.)


(edit: это было написано перед обновлением, когда у нас не было вывода ffmpeg, показывающего, что http://localhost:8090/fac.ffm и т. Д. Действительно сделали это в командной строке ffmpeg. Так что, возможно, ввод в ffmpeg пуст. Hexdump it с hexdump -C)


Похоже, ваша проблема здесь в том, что вы пропустили \ продолжение строки в конце более поздних строк , так что это отдельные команды оболочки вместо аргументов 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[@]}"
...