VideoHelp Forum
+ Reply to Thread
Results 1 to 6 of 6
Thread
  1. hello everbody, i converted a quicktime video to x264 and theora to embed it in a website via html5.
    for the x264 conversion i used "handbrake" and for theora i used "theora converte .net" i dont know much about video encoding so i only specified the basic settings in handbrake and theora converter

    video bitrate: 3000kbs
    audo bitrate: 128kbs
    size: 940x528
    fps: 25

    the output looks like that:


    the x264 version is perfect, but the theora version looks blurry. any tips how i could improve the theora quality. i also tried vlc to convert to theora. the output theora video from vlc looks better than the one from "theora converter .net". but the vlc video is messed up. the vlc video is stuttering.

    many thanks in advance!
    Quote Quote  
  2. now i have tried ffmpeg2theora and ffCoder. But with the same blurry resulst. I have been looking for a "sharpen" option in those programs, but did not find anything. Is this "Theora Codec" built in ffmpeg2theora and ffCoder? Or do those programs use codecs installed on my computer? Do i have to update any Theora Codecs on my computer? Maybe its not possible to get a sharper image with the theora codec? Sorry but as i mentioned before i am not an expert in video encoding. Any help or tips are greatly appreciated

    regards rettew
    Quote Quote  
  3. As I understand it ffCoder and theoraconverter.net both act as front-ends for ffmpeg2theora, which is bundled with both programs.

    I have almost zero experience with theoraconverter.net, but I would try turning the post processing preset to none just to see if that is blurring the image during decoding.
    Quote Quote  
  4. Member zoobie's Avatar
    Join Date
    Feb 2005
    Location
    Florida
    Search Comp PM
    try out more settings with vlc and see if you can get it playing smoothly
    you also need to fill out your computer profile...your box may not be powerful enough to play smoothly
    Quote Quote  
  5. DECEASED
    Join Date
    Jun 2009
    Location
    Heaven
    Search Comp PM
    JMHO, but the correct way of encoding to Theora is by using directly either the
    (infamous) "example encoder" or ffmpeg2theora. This latter accepts AVS files
    as input via avs2yuv. Not newbie-friendly, I know, but only this method will allow you to
    have full-control on the quality of the encodes. And "forgetting" HTML 5 for a moment,
    you'll possibly find interesting to remux your Theora videos to a more-versatile container,
    such as MKV or AVI.

    Code:
    ffmpeg2theora 0.27 - Xiph.Org libtheora 1.1 20090822 (Thusnelda)
    
      Usage: ffmpeg2theora [options] input
    
    General output options:
      -o, --output           alternative output filename
          --no-skeleton      disables ogg skeleton metadata output
          --skeleton-3       outputs Skeleton Version 3, without keyframe indexes
      -s, --starttime        start encoding at this time (in sec.)
      -e, --endtime          end encoding at this time (in sec.)
      -p, --preset           encode file with preset.
                              Right now there is preview, pro and videobin. Run
                              'ffmpeg2theora -p info' for more informations
    
    Video output options:
      -v, --videoquality     [0 to 10] encoding quality for video (default: 6)
                                       use higher values for better quality
      -V, --videobitrate     encoding bitrate for video (kb/s)
          --soft-target      Use a large reservoir and treat the rate
                             as a soft target; rate control is less
                             strict but resulting quality is usually
                             higher/smoother overall. Soft target also
                             allows an optional -v setting to specify
                             a minimum allowed quality.
    
          --two-pass         Compress input using two-pass rate control
                             This option requires that the input to the
                             to the encoder is seekable and performs
                             both passes automatically.
    
          --first-pass <filename> Perform first-pass of a two-pass rate
                             controlled encoding, saving pass data to
                             <filename> for a later second pass
    
          --second-pass <filename> Perform second-pass of a two-pass rate
                             controlled encoding, reading first-pass
                             data from <filename>.  The first pass
                             data must come from a first encoding pass
                             using identical input video to work
                             properly.
    
          --optimize         optimize video output filesize (slower)
                             (same as speedlevel 0)
          --speedlevel       encoding is faster with higher values
                             the cost is quality and bandwidth
                             - 0: Slowest (best)
                             - 1: Enable early skip (default)
                             - 2: Disable motion compensation
      -x, --width            scale to given width (in pixels)
      -y, --height           scale to given height (in pixels)
          --max_size         scale output frame to be within box of
                             given size, height optional (%d[x%d], i.e. 640x480)
          --aspect           define frame aspect ratio: i.e. 4:3 or 16:9
          --pixel-aspect     define pixel aspect ratio: i.e. 1:1 or 4:3,
                             overwrites frame aspect ratio
      -F, --framerate        output framerate e.g 25:2 or 16
          --croptop, --cropbottom, --cropleft, --cropright
                             crop input by given pixels before resizing
      -K, --keyint           [1 to 2147483647] keyframe interval (default: 64)
      -d --buf-delay <n>     Buffer delay (in frames). Longer delays
                             allow smoother rate adaptation and provide
                             better overall quality, but require more
                             client side buffering and add latency. The
                             default value is the keyframe interval for
                             one-pass encoding (or somewhat larger if
                             --soft-target is used) and infinite for
                             two-pass encoding. (only works in bitrate mode)
          --no-upscaling     only scale video or resample audio if input is
                             bigger than provided parameters
    
    Video transfer options:
      --pp                   Video Postprocessing, denoise, deblock, deinterlacer
                              use --pp help for a list of available filters.
      -C, --contrast         [0.1 to 10.0] contrast correction (default: 1.0)
                              Note: lower values make the video darker.
      -B, --brightness       [-1.0 to 1.0] brightness correction (default: 0.0)
                              Note: lower values make the video darker.
      -G, --gamma            [0.1 to 10.0] gamma correction (default: 1.0)
                              Note: lower values make the video darker.
      -Z, --saturation       [0.1 to 10.0] saturation correction (default: 1.0)
                              Note: lower values make the video grey.
    
    Audio output options:
      -a, --audioquality     [-2 to 10] encoding quality for audio (default: 1)
                                        use higher values for better quality
      -A, --audiobitrate     [32 to 500] encoding bitrate for audio (kb/s)
      -c, --channels         set number of output channels
      -H, --samplerate       set output samplerate (in Hz)
          --noaudio          disable audio from input
          --novideo          disable video from input
    
    Input options:
          --deinterlace      force deinterlace, otherwise only material
                              marked as interlaced will be deinterlaced
      -f, --format           specify input format
          --inputfps fps     override input fps
          --audiostream id   by default the first audio stream is selected,
                              use this to select another audio stream
          --videostream id   by default the first video stream is selected,
                              use this to select another video stream
          --nosync           do not use A/V sync from input container.
                             try this if you have issues with A/V sync
    Subtitles options:
          --subtitles file                 use subtitles from the given file (SubRip (.srt) format)
          --subtitles-encoding encoding    set encoding of the subtitles file
                 supported are utf-8, utf8, iso-8859-1, latin1
          --subtitles-language language    set subtitles language (de, en_GB, etc)
          --subtitles-category category    set subtitles category (default "subtitles")
          --subtitles-ignore-non-utf8      ignores any non UTF-8 sequence in UTF-8 text
          --nosubtitles                    disables subtitles from input
                                           (equivalent to --subtitles=none)
          --subtitle-types=[all,text,spu,none]   select what subtitle types to include from the
                                                 input video (default text)
    
    Metadata options:
          --artist           Name of artist (director)
          --title            Title
          --date             Date
          --location         Location
          --organization     Name of organization (studio)
          --copyright        Copyright
          --license          License
          --contact          Contact link
          --nometadata       disables metadata from input
          --no-oshash        do not include oshash of source file(SOURCE_OSHASH)
    
    Keyframe indexing options:
          --index-interval <n>         set minimum distance between indexed keyframes
                                       to <n> ms (default: 2000)
          --theora-index-reserve <n>   reserve <n> bytes for theora keyframe index
          --vorbis-index-reserve <n>   reserve <n> bytes for vorbis keyframe index
          --kate-index-reserve <n>     reserve <n> bytes for kate keyframe index
    
    Other options:
      -P, --pid fname        write the process' id to a file
      -h, --help             this message
          --info             output json info about input file, use -o to save json to file
          --frontend         print status information in json, one json dict per line
    
    
    Examples:
      ffmpeg2theora videoclip.avi (will write output to videoclip.ogv)
    
      ffmpeg2theora videoclip.avi --subtitles subtitles.srt (same, with subtitles)
    
      cat something.dv | ffmpeg2theora -f dv -o output.ogv -
    
      Encode a series of images:
        ffmpeg2theora frame%06d.png -o output.ogv
    
      Live streaming from V4L Device:
        ffmpeg2theora /dev/video0 -f video4linux --inputfps 15 -x 160 -y 128 -o - \
         | oggfwd icast2server 8000 password /theora.ogv
         (you might have to use video4linux2 depending on your hardware)
    
      Live encoding from a DV camcorder (needs a fast machine):
        dvgrab - | ffmpeg2theora -f dv -x 352 -y 288 -o output.ogv -
    
      Live encoding and streaming to icecast server:
        dvgrab --format raw - \
         | ffmpeg2theora -f dv -x 160 -y 128 -o /dev/stdout - \
         | oggfwd icast2server 8000 password /theora.ogv
    Quote Quote  
  6. thanks everybody for the help!
    after a lot of tests i figured out the problem: my source file (quicktime with animation codec) caused the blurry video.

    quicktime source in handbrake -> no probelm in x264 output
    quicktime source in ffmpeg2theora -> blurry video

    now i used the x264 as the source video in ffmpeg2theora.

    the output looks like this:
    problem solved
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!