Автор Тема: Мencoder timestamp  (Прочетена 780 пъти)

ntrance

  • Напреднали
  • *****
  • Публикации: 696
    • Профил
Мencoder timestamp
« -: Oct 07, 2012, 12:40 »
Здравейте ,
Ситуацията е следната  искам да правя streaming  на  /dev/video  с mencodera i ffmpeg .
Всичко е наред освен ,че не мога да вкарам timestamp с mencodera a с ffmpeg  имам различия звук картина  командите са тази.

mencoder tv:// -tv driver=v4l2:input=0:norm=pal:width=640:height=480:device=/dev/video2:freq=543.25:alsa=1:adevice=hw.2:forceaudio:audiorate=32000 buffersize=64 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=800:keyint=30 -oac mp3lame -lameopts br=128:cbr:mode=3 -ffourcc divx -endpos 10 -o `date +%y%m%d_%H%M`-m.avi

Понеже немога да да вкарам timestamp през mencoder-a  ползвам  ffmpeg  с тази команда.

 ffmpeg  -y -i file.avi  -vf "yadif=0:-1:0, scale=400:226, drawtext=fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf: text=' +%Y-%m-%d-%H-%M-%S  ':x=(w-text_w)/2:y=H-200 :fontcolor=white :box=1:boxcolor=0x00000000@1"   -sameq -s 320x280 -f mp4   $file.avi`date +%F-%H-%M`.mp4

А когато правя streaming само  с   ffmpegс  тази команда
ffmpeg -f video4linux2 -i /dev/video0 -vf "yadif=0:-1:0, scale=400:226, drawtext=fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf: text=' %d-%m-%Y  %X':x=(w-text_w)/2:y=H-200 :fontcolor=white :box=1:boxcolor=0x00000000@1" -vcodec libx264 -pix_fmt yuv420p -b:v 700k -r 25 -maxrate 700k -bufsize 5097k -an out.mp4

    имам различия със звука и картината около 2 секунди ми бяга звука пред картината  така и не успях да го  направя да вървят звук и картина  заедно за това се наложи да ползвам mencoder там всичко е наред  осен ,че пък немога да вкарам timestamp.

И в общи линии какво се получава  правя steaming с mencodera  2-3 часа и после  с ffmpeg   минавам и вкарвам timestamp  супер неудобно   е така.
Дали някой не може да даде идея как да вкарам timestamp на mencodera.
Активен

ntrance

  • Напреднали
  • *****
  • Публикации: 696
    • Профил
Re: Мencoder timestamp
« Отговор #1 -: Oct 14, 2012, 10:22 »
Здравейте ,
Намерих решение и реших да го пост-на. Ако  някога на някой му се наложи. Само ,че е vlc

#!/bin/bash
workdir=/upload/
chestota=223250
zvuk=hw:3,0
video=/dev/video2
programa=ntv.m4v
dir=/upload/ntv/
mv $workdir/$programa $dir/`date +%F-%H-%M`.m4v
cvlc --run-time=280  v4l2:// :v4l2-dev=$video  :v4l2-tuner-frequency=$chestota :size=640x480 :input-slave=alsa://$zvuk :v4l2-fps=25   --sout "#transcode{vcodec=mp4v,acodec=mp4a,vb=1024,fps=30,width=320,scale=1,deinterlace,audio-sync,sfilter=marq{marquee=IME %Y:%H:%M:%S,position=5,size=14, opacity=255}}:standard{access=file,mux=mp4,dst=$workdir/$programa}" vlc://quit

И така  --run-time=280   го сложил да спира  влц-то в секунди понеже ако имаме cron който да го върти на всеки 5 минути както аз когато го kill vlc-to прецаква файла , а така спира няколко секунди по рано и  като  Kill влц-то той вече е спрял и не прецаква файла.

Горе променливите ги направих за да може ако имаме повече от един tv tuner или неква карта да може  от там да се конфигурира  а не да пипаме по кода.


Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Конвертиране на UNIX timestamp
Коментар
ivanatora 4 1450 Последна публикация May 07, 2005, 23:34
от ivanatora
Lilo - timestamp mismatch
Настройка на програми
yavor76 13 2551 Последна публикация Apr 04, 2007, 15:19
от yavor76