2013-04-06 80 views
5

Theo hướng dẫn ffmpeg, thiết lập -g là xác định khoảng cách giữa các khung "I" và đặt -bf để sử dụng khung "B". Cái cũ tôi có, nhưng cái sau thì không.Đặt khung B trong video có ffmpeg

Mục tiêu: Tôi đang cố gắng có video có GOP 3,12 (M = 3, N = 12). Điều đó có nghĩa là: 2 khung hình "B" tách riêng từng khung "P" và khung "I" với 12 khung khoảng cách. Hoặc đơn giản là: "IBBPBBPBBPBBI"

Tôi nghĩ rằng tôi đã chỉ có N = 12, bằng cách sử dụng lệnh dưới đây:

  1. ffmpeg -s cif -r 30 -b 64000 -bt 3200 -g 12 -y -i video.yuv -vcodec mpeg4 video.m4v
  2. MP4Box -hint -mtu 1460 -fps 30 -add video.m4v video.mp4
  3. ffmpeg -y -i video.mp4 video_ref.yuv
  4. ../cmd/psnr 352 288 420 video.yuv video_ref.yuv > psnr_ref.txt
  5. ../cmd/mp4trace -f -s 192.168.0.2 12346 video.mp4 > trace
  6. head -n 20 trace

Kết quả:

[[email protected]]$ head -n 20 trace 
1 H 12002 9 0.000 
2 P 11479 8 0.034 
3 P 12021 9 0.066 
4 P 11239 8 0.099 
5 P 5407 4 0.134 
6 P 2735 2 0.166 
7 P 1014 1 0.199 
8 P 850 1 0.232 
9 P 619 1 0.265 
10 P 979 1 0.298 
11 P 813 1 0.331 
12 P 806 1 0.364 
13 H 5109 4 0.396 

* Lưu ý, quan trọng nhất là lệnh -g 12 trong ffmpeg, nhưng tôi viết tất cả các lệnh. Video tôi đang sử dụng là "đường cao tốc", từ video trang cif: http://www2.tkn.tu-berlin.de/research/evalvid/cif.html

Tôi không biết tại sao dấu vết kết quả đang sử dụng "H" thay vì "I".

Tôi cố gắng để đưa -bf 2 trong lệnh ffmpeg, nhưng không làm việc (tôi nghĩ vì tôi thấy không có "B" chỉ trong kết quả)

List item

ffmpeg -s cif -r 30 -b 64000 -bt 3200 -g 12 -bf 2 -y -i video.yuv -vcodec mpeg4 video.m4v 

Kết quả:

[[email protected]]$ head -n 20 trace 
1 H 12002 9 0.001 
2 P 11479 8 0.034 
3 P 12021 9 0.067 
4 P 11239 8 0.100 
5 P 5407 4 0.132 
6 P 2735 2 0.166 
7 P 1014 1 0.199 
8 P 850 1 0.232 
9 P 619 1 0.265 
10 P 979 1 0.298 
11 P 813 1 0.331 
12 P 806 1 0.363 
13 H 5109 4 0.400 
+1

vấn đề Lựa chọn vị trí trong ffmpeg. Bạn đang yêu cầu ffmpeg áp dụng các tùy chọn của bạn cho đầu vào/bộ giải mã. Thứ tự cơ bản là: 'ffmpeg [global options] [tùy chọn đầu vào] -i input [output options] output' – LordNeckbeard

Trả lời

2

Giải quyết:

Giống như LordNeckbeard cho biết, tùy chọn placem ent vấn đề trong ffmpeg.

trật tự cơ bản là: ffmpeg [cài đặt global] [tùy chọn đầu vào] đầu vào -i [tùy chọn xuất] đầu ra - hôm qua

tôi đã thay đổi vào lệnh dưới đây (đặt -g 30 -bf 2) và nó hoạt động :

ffmpeg -s -r cIF 30 -i video.yuv -vcodec mpeg4 -g 30 -bf 2 video.m4v

Lưu ý: Ngay cả sau khi đã thay đổi trong thời gian đầu tiên đã không làm việc. Chương trình yêu cầu tôi ghi đè lên các tệp và tôi đã nói Có. Nhưng rõ ràng sth đã không được gỡ bỏ, tại thời điểm này tôi đã gỡ bỏ tất cả các tập tin và đã làm nó một lần nữa (từ số không) nó làm việc.

Bây giờ kết quả là:

[robert @ 10-2Fontes] $ đầu -n 40 dấu vết

1 H 12.038 9 0.034

2 P 13204 10 0,132

3 B 5367 4 0,132

4 B 5553 4 0,132

5 P 12157 9 0,232

6 B 5069 4 0,232

7 B 5613 4 0.232

8 P 12739 9 0.334

9 B 5935 5 0,334

10 B 3921 3 0,334

11 P 4474 4 0,429

12 B 1247 1 0,429

13 B 784 1 0,429

14 P 1448 1 0.528

15 B 350 1 0.528

16 B 397 1 0,528

17 P 1023 1 0,627

18 B 299 1 0,633

19 B 265 1 0,634

20 P 829 1 0,727

21 B 209 1 0.733

22 B 340 1 0.733

23 P 867 1 0,826

24 B 343 1 0,833

25 B 378 1 0,833

26 P 865 1 0,925

27 B 282 1 0,925

28 B 461 1 0.925

29 H 5083 4 1.034

30 B 818 1 1,034

31 B 838 1 1,034

32 P 1171 1 1,122

33 B 443 1 1,133

34 B 409 1 1,133

35 P 1078 1 1.221

36 B 269 1 1.233

37 B 327 1 1,233

38 P 795 1 1,321

39 B 298 1 1,333

40 B 304 1 1,334

41 P 854 1 1,419

42 B 477 1 1.419

43 B 412 1 1.419

44 P 869 1 1,519

45 B 371 1 1,519

46 B 314 1 1,519

47 P 983 1 1,617

48 B 337 1 1,617

49 B 454 1 1.617

50 P 1118 1 1.717

51 B 286 1 1,717

52 B 275 1 1,717

53 P 1044 1 1,815

54 B 362 1 1,815

55 B 273 1 1,815

56 P 973 1 1.914

57 B 302 1 1.914

58 B 324 1 1,915

59 H 4525 4 2,033

+0

Giá trị đúng cho -bf, Nếu tôi không muốn sử dụng tham số -g thì sao ?! –

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