Điểm:0

Các đối số từ tập lệnh bash đến ffprobe không được giải thích chính xác

lá cờ pk

Tôi có chức năng sau trong tập lệnh bash. Khi tôi thực thi nó, tôi luôn nhận được một chuỗi trả về từ lệnh ffprobe có lỗi ở dạng:

Đối số '-' được cung cấp dưới dạng tên tệp đầu vào, nhưng '/media/Testing/Sorted/badfile.mp4' đã được chỉ định.

Tôi đã thử di chuyển các đối số sang ffprobe bên trong dấu ngoặc kép cho tên tệp (không giải quyết được sự cố). Tôi đã thử di chuyển các đối số vào một mảng và chuyển "${array[@]}" (không giải quyết được sự cố). Rõ ràng là tôi đang thiếu một cái gì đó rõ ràng ở đây.Tôi làm sai ở đâu?

# TrìnhVideo
#
# Lấy tên tệp đầu vào (có lẽ là tệp video, nhưng chức năng này không
# thực sự cố gắng xác minh điều đó) và giao nó cho ffprobe để thực hiện một số thao tác cơ bản 
# xử lý luồng video. Chúng tôi đặt cờ để mọi lỗi gặp phải sẽ
# khiến ffmpeg thoát với bộ mã lỗi. Nếu ffmpeg đặt mã lỗi, chúng tôi
# ghi tên tệp vào một tệp.
#
# ProcessVideo <đường dẫn đến video>

Xử lýVideo()
{
    địa phương vfn=$1
    cục bộ ec=0
    đầu ra cục bộ
    echo "Đang kiểm tra video $vfn"
    oput=$(ffprobe -loglevel cảnh báo "$vfn" - 2>&1)
    ec=$?
# nếu (( ec > 0 ))
#   sau đó
# echo "Lỗi thoát $ec $vfn"
# LogErr "Lỗi thoát $ec $vfn"
# fi
# nếu [[ "$oput" == *"moov nguyên tử"* ]]
    nếu [[ -n "$oput" ]]
    sau đó
        echo "Chuỗi lỗi $vfn"
        LogErr "Chuỗi lỗi $vfn"
        LogErr "$oput"
    fi
}

Lưu ý rằng LogErr trong tập lệnh ở trên là một chức năng khác - tất cả những gì nó làm là lấy chuỗi đã truyền và ghi nó vào một tệp nhật ký đã chỉ định. Nếu ai đó nghĩ rằng nó có liên quan đến vấn đề, tôi sẽ đăng nó, nhưng tôi không nghĩ vậy.

lá cờ hr
Bạn có chắc vấn đề xảy ra với các đối số *được truyền* cho hàm - không phải `-` được mã hóa cứng mà bạn có trong `$(ffprobe -loglevel warning "$vfn" - 2>&1)` không?
Cyrus avatar
lá cờ cn
Nên đọc ffprobe từ "$vfn" hay từ stdin?
Tracy avatar
lá cờ pk
Cảm ơn cả hai bạn đã chỉ ra lỗi - Tôi đã tập trung vào sai '-'. Đây là những gì tôi nhận được khi điều chỉnh tập lệnh cho một mục đích khác mà không cần viết lại hoàn toàn các phần có liên quan.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.