"sense" video files as for the quality of their compression, seekability, ...

Đang mở
#1,575 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
25/100
Loại issue
Tính năng
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Đình trệ
Lĩnh vực
cli, data

Hướng nghiên cứu

Không có tệp repository, bài kiểm thử hoặc entry point nào được nêu tên. Bắt đầu bằng cách xác định các đường dẫn upload và validation trong dandi-cli, sau đó xác định cách đánh giá các kiểm tra compression và seekability; hoàn tất khi có một quy trình được thống nhất và có thể kiểm thử, bao quát hướng dẫn validation và mọi hoạt động rà soát archive.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

ember

Came up in a meetup with @talmo re their experiences in SLEAP working with video recordings of behavioral data. In their experience, many, if not most, videos coming from audio/video recording hardware would be either uncompressed or badly compressed, resulting in those recordings taking LOTS of space (placing the aspect of number of files aside for now). For that reason in https://sleap.ai/help.html#does-my-data-need-to-be-in-a-particular-format they provide recommended settings for ffmpeg to see such files compressed:

ffmpeg -y -i "input.mp4" -c:v libx264 -pix_fmt yuv420p -preset superfast -crf 23 "output.mp4"

Similarly, for ReproNim's reprostim project, where we capture audio/video of presented to MRI experiment stimuli using cheap magewell capture card, and on a small underpowered hardware, with @vmdocua we specify default settings in https://github.com/ReproNim/reprostim/blob/master/src/reprostim-capture/videocapture/config.yaml#L105 for ffmpeg video component as

-c:v libx264 -flush_packets 1 -preset ultrafast -crf 18 -tune zerolatency -b:v 8M -maxrate 8M -bufsize 16M -vf setpts=PTS-STARTPTS

ATM.

edited: In DANDI we already have 44 dandisets with videos
dandi@drogon:/mnt/backup/dandi/dandisets$ for f in 0*; do find $f -regextype posix-extended -iregex '.*\.(mp4|avi|wmv|mov|flv|mkv)'; done  >| /tmp/videos.txt 
dandi@drogon:/mnt/backup/dandi/dandisets$ grep -v '\.git' /tmp/videos.txt | sed -e  's,/.*,,g' | sort | uniq -c | sort -nr | nl
     1	   2483 000559
     2	    899 000409
     3	    794 000779
     4	    495 000540
     5	    459 000951
     6	    400 000780
     7	    360 000793
     8	    360 000792
     9	    319 000782
    10	    319 000781
    11	    264 000831
    12	    264 000830
    13	    256 000867
    14	    256 000866
    15	    115 000231
    16	    105 000833
    17	    105 000832
    18	     82 000568
    19	     64 001084
    20	     40 000807
    21	     40 000806
    22	     40 000805
    23	     40 000804
    24	     40 000803
    25	     40 000802
    26	     40 000801
    27	     40 000800
    28	     32 000689
    29	     19 000624
    30	     18 000863
    31	     18 000862
    32	     16 001172
    33	      9 001259
    34	      9 000727
    35	      9 000576
    36	      8 001190
    37	      8 000718
    38	      3 001195
    39	      2 001180
    40	      1 001265
    41	      1 000892
    42	      1 000691
    43	      1 000360
    44	      1 000167

I think it would be

  • useful to provide some guidance at the time of validation/upload to ensure that videos uploaded to archive are appropriately compressed and we are not blowing up the size of the archive with loosely or uncompressed videos. Yet to figure out usable procedures for that but could be pretty much taking a sample video and recompressing with "recommended" settings and seeing how well it compresses
  • validate that videos are seekable (ref: https://github.com/janclemenslab/napari-video/issues/3 per @talmo comment below)
  • reviewing current videos in the archive and issue such recommendations?
Ngôn ngữ chính
Python
Star
28
Fork
37
Merge trung bình
1 ngày 17 giờ
Pull request đã merge (30 ngày)
11

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của dandi/dandi-cli

Tất cả issue của dandi/dandi-cli

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.