2013-06-10 31 views
7

Tôi đang mã hóa một số hình ảnh thành video h264 bên trong một vùng chứa mp4. Tôi chủ yếu sử dụng ví dụ ffmpeg muxing.c. Vấn đề là tôi đang cố gắng để thiết lập một số siêu dữ liệu trong container mp4 như nghệ sĩ, tiêu đề, vv ...Làm cách nào để đặt siêu dữ liệu tiêu đề thành video được mã hóa?

Tôi nghĩ sử dụng những điều sau đây sẽ làm việc nhưng nó đã không được phép:

AVDictionary *opts = NULL; 
av_dict_set(&opts, "title", "Super Lucky Dude", 0); 
av_dict_set(&opts, "author", "Jacky Chan", 0); 
av_dict_set(&opts, "album", "Chinese Movie", 0); 
av_dict_set(&opts, "year", "05/10/2013", 0); 
av_dict_set(&opts, "comment", "This video was created using example app.", 0); 
av_dict_set(&opts, "genre", "Action", 0); 

// Write the stream header, if any. 
ret = avformat_write_header(oc, &opts); 

Sau toàn bộ video được tạo Tôi không thấy bất kỳ siêu dữ liệu nào được ghi vào tệp video. Bất kỳ con trỏ làm thế nào để thực sự làm điều này đúng?

+0

Bạn kiểm tra siêu dữ liệu như thế nào? Hex editor? Hộp thoại Thuộc tính iTunes? –

+0

Tôi đang sử dụng VLC và cũng là Quicktime. Tôi thực sự đã giải quyết được vấn đề, vui lòng xem câu trả lời của tôi bên dưới. – Jona

Trả lời

6

Giải pháp là sử dụng biến số metadata từ AVFormatContext thay vì tự tạo AVDictionary của riêng mình và chuyển nó đến avformat_write_header function.

+0

xin lỗi về việc sử dụng chủ đề cũ, nhưng tôi gặp sự cố tương tự khi cố gắng đặt siêu dữ liệu luồng video. Bạn có một số gợi ý về cách đạt được điều đó không? Tôi đã tạo một câu hỏi trên SO, đây là liên kết http://stackoverflow.com/questions/29973423/setting-video-stream-metadata-using-ffmpeg –

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