2010-07-03 20 views
7

Tôi hiện đang sử dụng ffmpeg để chuyển đổi video ở nhiều định dạng khác nhau thành tệp flv. Một yêu cầu cũng đã được đưa ra và đó là để có được thông tin phụ đề chi tiết trong tệp. Có ai có bất kỳ kinh nghiệm với điều này hoặc biết nó thậm chí có thể được thực hiện. Tôi không thấy bất kỳ lựa chọn nào cho nó nhưng tôi nghĩ tôi sẽ hỏi và xem.Có thể ffmpeg trích xuất dữ liệu phụ đề chi tiết

Trả lời

1

Nếu chú thích được bao gồm như là một dòng riêng, sau đó giải nén chúng được (tương đối) đơn giản:

ffmpeg -i input.mov -an -vn -c:s copy -f rawvideo -map 0:s sub.txt 

Nếu nó "đốt cháy" trên các tập tin video, sau đó bạn có lẽ vì may mắn, nhưng điều đó sẽ phổ biến hơn đối với phụ đề hơn là phụ đề chi tiết.

2

Để nhận được chỉ là phụ đề và không bất kỳ rác meta, tôi đã phát hiện ra rằng

ffmpeg -i input.mov -an -vn -bsf:s mov2textsub -scodec copy -f rawvideo sub.txt 

làm việc tốt nhất cho tôi.

+0

Cảm ơn Heshy. Tôi sẽ thấy về việc thử một lần. Bây giờ dự án đã chuyển sang nhưng tôi sẽ ghi lại điều này khi nó quay lại. – spinon

1

Phụ đề chi tiết không phải là các luồng riêng biệt, cũng như chúng được ghi vào hình ảnh, chúng được đan xen trong các đường quét Trong hình ảnh - đây là một ý tưởng kỳ lạ của người Mỹ, không thực sự được sử dụng ở nơi khác. Mặc dù bạn có thể mua đĩa DVD có loại phụ đề này, thông thường những người bên ngoài Hoa Kỳ không thể xem phụ đề và thậm chí có thể không biết có một số phụ đề trong tệp.

CCExtractor có thể trích xuất thông tin này từ VOB bằng cách nhìn vào các siêu dữ liệu TS: http://ccextractor.sourceforge.net/

+0

xuất hiện rằng đối với dòng ATSC, chú thích bằng cách nào đó "chứa nhưng tách biệt" và không phải là hình ảnh, do đó có thể trích xuất được, xem câu trả lời của Anshul. Bây giờ nếu ffmpeg có thể "che phủ chúng" một cách thích hợp và ghi chúng vào, không chắc chắn, nhưng ít nhất khai thác là có thể ... – rogerdpack

6

đóng chú thích là của 2 định dạng
tiêu chuẩn 1) ATSC Mỹ (hỗ trợ là có trong ffmpeg)
2) ISDB tiêu chuẩn Nhật Bản (hỗ trợ vẫn chưa không có trong ffmpeg)

bạn có thể sử dụng lệnh

ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map s output.srt 
sau

Điều này gần đây đã được phát triển vì vậy hãy kiểm tra phiên bản ffmpeg của bạn.

+0

Cảm ơn bạn đã phát triển bản vá này! – tmm1

10

Nếu bất kỳ ai, giống như tôi, kết thúc trên chuỗi này, dưới đây là giải thích chi tiết hơn về lệnh ffmpeg đã hoạt động đối với tôi.

ffmpeg -f lavfi -i movie=input.ts[out+subcc] -map 0:1 output.srt 

Có vẻ như một yêu cầu khó khăn về nguồn là của mpegts định dạng (file mở rộng .ts). Nếu không, bộ lọc lavfi dường như không hoạt động. Các spec out+subcc lực lượng ffmpeg để điều trị phụ đề đóng (được nhúng vào dữ liệu khung) như dòng riêng biệt. Sau đó -map 0:1 chỉ làm cho ffmpeg ánh xạ luồng đó và loại bỏ mọi thứ khác. Kết quả được lưu vào output.srt. Tùy thuộc vào đầu vào của bạn, ánh xạ có thể khác nhau. Một cách dễ dàng để tìm ra các bản đồ chú thích khép kín là chạy ffprobe lệnh, như vậy

$ ffprobe -f lavfi -i movie=input.ts[out+subcc] 
ffprobe version N-79653-g4efd3ec Copyright (c) 2007-2016 the FFmpeg developers 
    libavutil  55. 22.101/55. 22.101 
    libavcodec  57. 38.100/57. 38.100 
    libavformat 57. 34.103/57. 34.103 
    libavdevice 57. 0.101/57. 0.101 
    libavfilter  6. 44.100/6. 44.100 
    libswscale  4. 1.100/4. 1.100 
    libswresample 2. 0.101/2. 0.101 
    libpostproc 54. 0.100/54. 0.100 
[h264 @ 0x7fe869826200] Increasing reorder buffer to 1 
Input #0, lavfi, from 'movie=input.ts[out+subcc]': 
    Duration: N/A, start: 1562.233011, bitrate: N/A 
    Stream #0:0: Video: rawvideo (I420/0x30323449), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 90k fps, 30 tbr, 90k tbn 
    Stream #0:1: Subtitle: eia_608 

Suối Subtitle: eia_608 có "chỉ số" 0:1, vì vậy đó là những gì nên được ánh xạ.

Ít ghi chú chia tay, thứ tự của các đối số quan trọng cho ffmpeg, -f lavfi phải trước -i move=..., nếu không thông số kỹ thuật sẽ không được nhận dạng. Tính năng này cũng khá gần đây, vì vậy hãy kiểm tra kỹ phiên bản ffmpeg và nâng cấp của bạn nếu cần.

Các vấn đề liên quan